For common hash functions designed before 2007, there is no proof that every output is reachable for some input (that is, no proof that the hash is surjective), but it is expected to be true. No general method better than brute force is known to check this, and brute force is entirely impractical.
By the coupon collector argument, it is expected to require $2^n\cdot(n\cdot\ln(2)+\gamma)+1/2+o(1)$ random values to reach all $n$-bit values picked at random, with $\gamma\approx 0.577216$. Translated to generic hashes, the number of distinct messages expected to be required to reach all output values is about $2^{134.5}$ for 128-bit (e.g. MD5), $2^{166.8}$ for 160-bit (e.g. SHA-1), $2^{263.5}$ for 256-bit (e.g. SHA-256), on the assumption that these hashes behave as random functions. This assumption is reasonable, as it is the design goal of a generic hash.
MD5, SHA-1, SHA-2 are Merkle-Damgård hash with Davies-Meyer round function, a message block (at most) twice as large as the output, and the length padding at most about a quarter of the block size. Under the assumption that the underlying block cipher is a Pseudo-Random Permutation, and by an adaptation of the above reasoning, it is very probable that all outputs are reached with a single message block; and even more probable that they all are reached with two message blocks. Anything else seems to require a severe defect of the underlying block cipher, and any known such defect seems considerably lesser.
SHA-3 is provably surjective thanks to it's sponge structure. The proof is for impractically long input (see this answer). However an argument similar to the above shows that a severe defect of the Keccak permutation would be required to have some output values unreachable much past the coupon collector's bound.
As stated by Jon Callas in an other answer, it is possible to construct hash functions which demonstrably do not reach all their output; and some that are even computationally secure. One example is $\mathcal{H'}=\mathcal{H}(\mathcal{H}(m)|1)$ where $|$ is bitwise OR, and $\mathcal{H}$ is a common hash function. $\mathcal{H'}$ reaches markedly less than half of its output space, but is likely as fine as $\mathcal{H}$ by other experimental metrics except speed, and expected effort to break collision resistance which is slightly reduced (by <30%).
It's possible to construct secure hashes that demonstrably reach all their output values for practical input size, using a one-way permutation over an interval. The technique in Burt Kaliski's One-way permutations on elliptic curves (in Journal of Cryptology, 1991) allows to construct such permutations over intervals of size matching the threshold for collision resistance of a hash, e.g. $2^{256}$, using prime order curves in Weierstrass form with prime order twist. That can be extended to 256-bit permutation, then 256-bit pseudorandom permutation, then surjective hash for input bounded by the output size (take a standard hash and when it's input is exactly the output size, replace it with the permutation).