The basic difference between Arduino Uno and Arduino Leonardo is given below:-

Criteria Arduino Uno Arduino Leonardo

1. Microcontroller ATmega328 ATmega32u4

2. Digital I/O Pins 14 20

3. Analog Input Pins 6 12

4. PWM Channels 6 7

5. Flash Memory 32 KB of which 0.5 KB used by bootloader 32 KB of which 4 KB used by bootloader

6. SRAM 2 KB 2.5 KB

There might be some compatibility issues with UNO based shields because of pin out differences (notably Ethernet shield)
GorillBuilderz have already stepped up to make legacy shields compatible with the new GorillBuilderz LeoShield. To use it simply place it on the Leonardo, and then the older legacy shield on top. The LeoShield redirects the I2C pins back to A4 and A5, and also sends the SPI lines back to D11~D13. Tronixstuf has a review on Leoshield.

via Arduino Uno vs Arduino Leonardo | debtronix.