uno or leonardo

Which board is better in long run, UNO or Leonardo?
I am little confused considering the prices and availibility of uC

Leonardo uses a different uP to the Uno, which gives it additional features of...

The ability to appear as a keyboard and a mouse to the host PC
Also as the uP handles the communications via USB to the PC the hardware serial lines 0, and 1 are available to communicate with other devices, i.e so the Leonardo has Serial and Serial1, where Serial is the USB serial to the PC and Serial1 is Pins 0 and 1

Additionally from what I recall the Leonardo has an additional hardware timer and also a small increase in ram (I think its 2.5k instead of 2k, but don't quote me

However, there may be down sides to using the Leonardo, I've only focused on the positives.

Because of those extra features, the Arduino Leonardo can have more problems with devices drivers.
The Arduino Uno is the easiest board to start with, buy the Leonardo only when you want to use the Leonardo board as a keyboard or mouse in the future.

Uno has the advantage of being available as a DIP, can make for easier integration into a standalone perfboard project without the need for a PCB just to solder a TQFP part down.
32U4 does have extra 0.5K SRAM - is it needed for the USB interface tho?
Compare prices also:
http://www.digikey.com/product-search/en/integrated-circuits-ics/embedded-microcontrollers/2556109?k=atmega328p
http://www.digikey.com/product-search/en/integrated-circuits-ics/embedded-microcontrollers/2556109?k=atmega32u4

With Arduino 1.5.7 the Leonardo has much a higher communication speed with a PC - perhaps 3 times faster than an Uno working at 1,000,000 baud.

But if the Leonardo features are not needed use a Uno because the basic Leonardo - PC interface is more tricky to work with and may give the impression that things don't work.

If you are a beginner, and even if you will eventually want some of the Leonardo features I would still start with an Uno. That way you will know how things should work when you run into problems with the Leonardo.

...R

Also the UNOs 328 has a bigger brother the Atmega1284 which has more memory and I/O when you need to graduate.
See:
http://crossroadsfencing.com/BobuinoRev17/index.html