The confusion is from the fact that everyone learns that P = mv when in fact that is a very specific definition. It is only valid for objects with mass. Momentum can also be refered to as inertia. For objects with mass, inertia is directly proportional with the mass and the velocity of the object...it is harder to change its state of motion as the object is more massive or moves faster. For massless objects (which are always waves and move at the speed of light, a wave itself) inertia (momentum) is directly proportional to the energy of the object and does not depend on its velocity (which is constant).

For those who want to see math for this, Newton originally stated his second law as

F = dP/dt

or the rate of change of momentum with respect to time. Work (which is a change in energy) is ∫F•dx. Solving that for force you get F = dE/dx where dE is work. Setting the two equations equal gives:

dE/dx = dP/dt

dE(dt/dx) = dP --> dv = dx/dt

dE/dv = ∫dP = P

For an object with mass this yields P = mv but for a massless object, v = c and is constant so P = E/c = hν/c = h/λ. Thus, energy of a light wave does not depend on anything except its wavelength. In fact, for anything, momentum only depends on its kinetic energy (dE in the above equations). The only difference practically speaking between energy and momentum is that energy is a scalar and momentum is a vector. The use of one or the other is only to make any one problem easier to solve.