the standard way to reverse the polarity is to use an "H-bridge". one quick way to get where you're going would be to use an R/C electronic speed controller, which is an H-bridge in a nice package. It lets you send a PWM signal that varies the output form full reverse (polarity in this case) to full forward, with lots of steps in between. Here a link:http://www.hobby-lobby.com/boatcont.htm
If you want to build or buy an H-Bridge, here are a few links:
Solarbotics H bridge: http://downloads.solarbotics.com/PDF/KCMD-L298_Compact_motor_driver.pdf
DIY H bridge: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1138310274/30
One thing you will have to bear in mind is that the H bridge IC's generally have two power supplies: 5V for logic, and 7 to 35V for the power side of the bridge. the L298 needs minimum 7 or 8 V to operate on the power side, so perhaps the RC speed controller is a good option, as it works on 5 or 6V all around.
PS: oh yeah, you could also use a relay, that's the $2 solution. get a Tip 122 and a relay.. there is a diagram in the tutorial section of the Playgrund.