One thing you need to watch for with the circuit Matt posted, is the the maximum Vgs spec for your P-channel mosfets. Vgs is the voltage differential between the gate and the source, and the mosfet will be damaged if you exceed the max Vgs. On many logic level mosfets, max Vgs is only 12 volts, and on some it is as low as 8 volts. Since the npn transistor pulls the gate to ground, the full motor voltage is applied across the gate and source of the P-channel mosfet, so supply voltages higher than max Vgs will damage the P-channel mosfets.
It is even worse than that, because the current stored in the windings of the motor will cause a voltage spike when the mosfet is opened as the motor is being commutated. This is recirculated thru the power supply by reverse protection diodes built into the mosfets. That is why you need a very good capacitor with a low ESR(equivalent series resistance) across the power supply right at the mosfets. Section 2.3 of this app note describes why the capacitor is needed, and how to choose it. http://www.st.com/stonline/books/pdf/docs/9214.pdf