Hand down, PWM (Pulse Width Modulation) is the best method for controlling DC motor speed as there is a relationsship between the motors torque and the voltage it receives. PWM speed control is achived by switching the motor on and off very quickly and shortening, or lengthening the gaps between the pulses.

Each "on" pulse is always at full voltage, so regardless of how slow the motor is actually turning, there will be no torque loss.

PWM speed control units are cheap as chips, power supplies not so much but I did find and purchase a unit that will power my 2.5HP 180v motor and has built in PWM speed control, as well as direction control for about £30 on eBay.