What is the difference between the revisions of the Arduino Uno board?
Here is a summary from the official site:

Revision 2 of the Uno board has a resistor pulling the 8U2 HWB line to
ground, making it easier to put into DFU mode.
Revision 3 of the board has the following new features:

1.0 pinout: added SDA and SCL pins that are near to the AREF pin and two other new pins placed near to the RESET pin, the IOREF that
allow the shields to adapt to the voltage provided from the board. In
future, shields will be compatible with both the board that uses the
AVR, which operates with 5V and with the Arduino Due that operates
with 3.3V. The second one is a not connected pin, that is reserved for
future purposes.
Stronger RESET circuit.
Atmega 16U2 replace the 8U2.


A more detailed list of changes can be found here.
R2:

The rotation of the ATMEGA8U2 (the little chip near the USB port) was changed by 45 degrees. 

Four solder pads (JP2) were added, connecting to pins PB4 to PB7 of the USB ATMEGA.&quot; 

Instead of R1's solder pads, R2 adds header pins to the USB ATMEGA ICSP. 

An LED connected to pin 13 was added. It turns on when pin 13 is HIGH, off when LOW.

The main microchip was changed from an ATmega168 to an ATmega328.

A resistor was added between the DTR (HWB) line and the ATMEGA PD7 pin.



R3:

The rotation of the ATMEGA8U2 was changed back by 45 degrees.
The ATMEGA8U2 was changed to an ATMEGA16U2.
A diode was added, wired from +5vdc to the reset pin, cathode to +5vdc.

The 8 pin connector that contains Arduino pins 8 was changed to 13, GND and AREF for a 10 pin connector. The extra 2 pins are connected to AD4/SDA and AD5/SCL. Also, the 6 pin connector that has the reset pin connected to it changed to an 8 pin connector. One of the new pins on this header is the IOREF pin that allows shields connected to the board to adapt to the voltage of the board. The second pin is not connected and reserved for future use.