Controlling a motor direction and speed

To control both direction and speed of a motor takes at least four transistors in a H-bridge configuration. Search around here and the Arduino playground site for H-drive", should be lots of examples. There are pre-built and kit motor driver shields that can also perform that function.

http://www.arduino.cc/playground/Main/InterfacingWithHardware#Output

Lefty