I would do both: Implement a PWM controller for the motor, and add gearing to reduce the speed. Don't try the resistance thing; resistors are for reducing current, and they do that by dropping voltage (as heat); you might end up with a "weak" motor that doesn't turn at all (under load), and a resistor that's on fire (or close to it). If you can't implement the PWM controller yourself, then you are going to have to spend the money and buy one. Make sure that it is rated for the maximum (stall) current of your motor, of course.