I read on wikipedia that it's best to use four n-channel MOSFETS in an h-bridge.
Most designs also use four n-channel MOSFETs because p-channel MOSFETs are hella expensive (comparatively).
The drawback of an all n-channel design is that you need a form of boost circuit on the top end (or some kind of external driver chip). I am not sure if with an external driver chip if this is an issue, but I have heard with a voltage boost circuit on the top end, you need to -always- use PWM to drive the motor, you can't lock at "top speed" to DC only, because the capacitor in the boost circuit will discharge (and I can't remember what this does to the rest of the circuit - whether it just stops working, or if there is spectacular failure, or what). It could be that the driver chip always uses PWM or something.
More information on h-bridges, in a nice tutorial, can be found here (BJT only, though - but the information is good):
Here's another interesting tutorial on MOSFET-based h-bridges: