You may be interested in BEAR and LION.
http://www.cl.cam.ac.uk/~rja14/Papers/bear-lion.pdf
The authors basically build block ciphers (with variable block sizes $m$) from a keyed hash function (a function family $H_K : {0,1}^* \to {0,1}^k$) or a normal hash (a function $H': {0,1}^* \to {0,1}^k$) and a stream cipher (a function $S : \{0,1\}^k \to \{0,1\}^n$, for arbitrary $n$ from context; here $n = m-k$).
These work by fist splitting the input block of size $m$ in two parts, one (L) of size $k$ and one (R) of size $m-k$, doing the encryption/decryption, and putting the two parts again together. We also have two keys $K_1$ and $K_2$, each of length $k$.
For BEAR, the encryption is done by
$$ L := L ⊕ H_{K_1}(R) $$
$$ R := R ⊕ S(L) $$
$$ L := L ⊕ H_{K_2}(R) $$
and decryption the other way around:
$$ L := L ⊕ H_{K_2}(R) $$
$$ R := R ⊕ S(L) $$
$$ L := L ⊕ H_{K_1}(R) $$
For LION, we use a un-keyed hash function $H'$, and we have two calls of the stream cipher instead of the hash function instead of two keyed hash calls. Encryption:
$$ R := R ⊕ S(L ⊕ K_1) $$
$$ L := L ⊕ H'(R) $$
$$ R := R ⊕ S(L ⊕ K_2) $$
Decryption:
$$ R := R ⊕ S(L ⊕ K_2) $$
$$ L := L ⊕ H'(R) $$
$$ R := R ⊕ S(L ⊕ K_1) $$
E.g. decryption is in both cases just encryption with swapped key halves.
The paper proves that these are secure (against certain attacks) as long as even one of the component functions is secure (e.g. breaking the composed primitive allows breaking both of the components). For added resistance against other attacks there is also a version (LIONESS) which uses both keyed hash and stream cipher twice.
I don't really understand why anyone would want a block cipher if they already have a stream cipher, but there you go. See also what Jack Lloyd said, above, about Salsa20.
Here is a rough sketch of a proposal to do the Salsa20 style of counter-mode with a modern secure hash function: http://tahoe-lafs.org/pipermail/tahoe-dev/2010-June/004487.html