If you want to use your Arduino board to make a robot which has lots of moving parts or if you want to control too many LEDs with PWM outputs, the limited PWM outputs of your Arduino board would be a big problem for you. To overcome this problem, the only thing you should do is to get an Adafruit 16-Channel 12-Bit PWM/Servo Arduino Shield. Adafruit 16-Channel 12-Bit PWM/Servo Arduino Shield is the Arduino shield version of the Adafruit 16-Kanal 12-Bit PWM/Servo Driver. It is compatible with Arduino Uno, Arduino Leonardo and Arduino Mega.
You can control 16 free-running PWM outputs with Adafruit 16-Channel 12-Bit PWM/Servo Arduino Shield using only 2 pins. You can even chain up 62 breakouts to control up to 992 PWM outputs. It's an I2C-controlled PWM driver with a built in clock. That means that, you do not need to continuously send it signal tying up your microcontroller, it is completely free running!
It is 5V compliant, which means you can control it from a 3.3V microcontroller and still safely drive up to 6V outputs. This is good for when you want to control white or blue LEDs with 3.4+ forward voltages. 6 address select pins so you can wire up to 62 of these on a single I2C bus, a total of 992 outputs.
Adafruit Web Site
http://www.adafruit.com/product/1411