The very simple proof that there's no state of sharp momentum is very simple. Take the position representation. Then the eigen-value equation for the momentum operator reads
-\mathrm{i} \vec{\nabla} u_{\vec{p}}(\vec{x})=\vec{p} u_{\vec{p}}(\vec{x}),
which can be easily integrated by separation of variables to give the plane-wave solution
u_{\vec{p}}=N_{\vec{p}} \exp(\mathrm{i} \vec{p} \cdot \vec{x}),
with N_{\vec{p}}=\text{const}. This is not a square-integrable function, and thus there's no eigenvalue and no eigenvector of \hat{\vec{p}}.
What we found there belongs to the space of distributions of a dense subspace of Hilbert space where the momentum operator is defined. As a distribution it's normalized to a \delta-distribution,
\langle \vec{p}_1 |\vec{p}_1 \rangle=N_{\vec{p}_1}^* N_{\vec{p}_2} \int \dd^3 \vec{x} \exp[\mathrm{i} \vec{x} \cdot (\vec{p}_2-\vec{p}_1)]=N_{\vec{p}_1}^* N_{\vec{p}_2} (2 \pi)^3 \delta^{(3)}(\vec{p}_1-\vec{p}_2).
Thus, choosing the arbitrary phase such as to make the normalization factor real and positive, we have the normalized generalized momentum-eigenfunction
u_{\vec{p}}(\vec{x})=\left (\frac{1}{2 \pi} \right)^{3/2} \exp(\mathrm{i} \vec{p} \cdot \vec{x}).
The spectrum of \hat{\vec{p}} is whole \mathbb{R}^3.
Since there are thus no true eigenvectors but only generalized ones and the spectrum is everywhere continuous, a particle cannot have a sharp momentum. However, you can make the width of the momentum distribution arbitrarily small, and this is to the cost of the position accuracy of the particle. That's the meaning of Heisenberg's uncertainty relation, which correctly reads (in my units, where \hbar=1)
\Delta x_j \Delta p_k \geq \frac{1}{2} \delta_{jk}.
The limit is reached for a Gaussian wave packet (it's of course Gaussian in both momentum and position since one wave function is the Fourier transform of the other).