Depending on the granularity of your timing on the LED(s), what you can do is the following:
Arduino => shift register => transistors => Resistors => LED pin.
Look at the bitshift out libraries out there for the Arduino. This will make it so that you are only using a few of pins: clock, signal, and latch.
You can daisy chain the serial-in, parallel out registers to increase the number of LED(s) you can control in this fashion. What would happen then is this: you send a stream of bits which represents which bits you want to turn on/off, then toggle the latch to update the values. In this manner, you can PWN drive a good number of tri-color LED(s) without risk of burning out an IO pin.
Note that timing becomes critical. As others have suggested, you can get dedicated RGB driver IC, but if you want to go with easy to find parts, the latching shift registers are a good way to go.
If you search, there are a number of good tutorials on PWM'ing over shift registers, as well as libraries.