An H-Bridge allows you to control a motor so it can turn in either direction. It uses a combination of transistors to direct the follow of electricity through the motor depending on the open/closed states of the transistors.
In theory, the structure of the schematic looks like this, and can be made with basic switches:
When S1 and S4 are open (and S2 and S3 are closed), the motor turns in one direction. When S2 and S3 are open (and S1 and S1 are closed), the motor turns in the other direction.
Instead of manual switches, however, we need to use Transistors (MOSFETs in this case) so we can control the motor direction with our Arduinos.
In this diagram, there are four MOSFETs that have replaced the switches, but there are also Diodes inserted into the circuit. These purpose of these diodes is a little complicated, but the main purpose is to prevent short circuits when switching motor direction.
The PhysComp lab has ICs that have internal H-Bridges, the L293NE. ITP has great tutorial on how to use them.
Sources:
Modular Circuit’s H-Bridges — the Basics