For my Remotely operated underwater vehicle (ROV) I needed a way of controlling the rotational speed and direction of the propellers. The propellers are mounted directly onto some old-style brushed DC motors. The L298 might be just the right chip for the job. They are very easy to get hold of (on ebay of course), and cheap too. It is a common H-bridge chip (http://www.sparkfun.com/datasheets/Robotics/L298_H_Bridge.pdf). It actually contains two H-bridges, so it can control two DC motors.
Normally two inputs/wires are used to decide which direction the motor is running, or if the motor should be free running or breaking. As these motors connected to propellers, we don't have so much use for the two last ones. As it happens, for the two states that are left, the signals will always be the opposite of the other. See a similar approach here. This means that we simply can use a logical inverter to create one of the signals from the other. The chip selected for this job was the 4049 that can be seen to the left on the strip board. This way reduce the control wires to one. The speed is controlled by sending a PWM signal into the Enable input of the chip. So for each motor we will have an direction input, and a speed (PWM) input.Here is the circuit implemented on a strip/vero board. Like spaghetti code for electronics - but it works :) You could also draw the schematics in Eagle or some similar program, and make a PCB, but strip/vero boards have two two nice features, and that is you can start soldering right away, and that you'll need less equipment :) The red dots is where the strips should be cut. There was no L298 in the program, so it is represented by the black pads to the right.