Using gears is always best because that is the method that makes available the highest percentage to the motor power capability. Since power is torque multiplied by speed, keeping most of the motor's power capability increases torque capability while reducing speed.
Pulse width or pulse amplitude modulation is second best. That can preserve the highest torque capability while reducing operating speed and power capability. The best way to maintain torque capability is to have an inner control loop that regulates torque by regulating current. An outer control loop regulates speed and provides the current reference. Because a switching regulator is used, there is less power wasted than would be wasted by a linear control technique or series resistance.
A series resistor can certainly be used. It can be a variable resistance (rheostat) or one or more fixed resistors. With a series resistor, the wasted power is directly proportional to the percentage speed reduction. Since there is no current control, adding resistance increases the speed change that results from any load change. The speed variation due to load variation increases in proportion to the amount of speed reduction. There is also speed variation caused by resistance change due to resistor temperature variation.
If not only "slowing down," but also variable speed is required, it is best to select gearing for the proper maximum speed and then use electronic control to provide variation. Larger DC motors are seldom used for fixed speed operation, but electronic control or series resistance may be required just for starting a larger DC motor to avoid excessive starting current.
For very small DC motors, series resistance may be perfectly adequate in some situations depending on various factors such as power source, duty cycle, cost analysis, maximum speed reduction, load stability, etc.