Do you want to control 12 channels of PWM? Check out this breakout board for the TLC59711 PWM driver chip. This chip can control 12 separate channels of 16-bit PWM output. Designed (and ideal) for LED control, this board is not good for driving servos.
Only three "SPI" pins are required to send data (Adafruit's Arduino library shows how to to use any digital microcontroller pins). Best of all, the design is completely chainable. As long as there's enough power for all the boards you can chain as many as you'd like, like a little trail of blue PCBs stretching out into the sunset. Each of the 12 output's is constant-current and open drain. You can drive multiple LEDs in series, with a V+ anode supply of up to 30V. If you want to drive something that requires a digital input, you must use a pullup resistor from the drive pin to your logic level to create the full waveform.
One resistor is used to set the current for each of the outputs, the constant current means that the LED brightness doesn't vary if the power supply dips. We use a 3.3K resistor for about 15mA but you can solder a thru-hole resistor over it if you'd like to change that value. Check the TLC59711 datasheet for details on resistor-to-current values.
The board also comes with some extra to make it easy to use: a durable 5V low-dropout regulator (with reverse polarity protection in case you plug it in backwards), a green power-good LED, four mounting holes and a current-set resistor. A bit of 0.1" header is also included so you can solder it on and plug into a breadboard.
To use: Power V+ with 5-30VDC, and connect ground to the common ground. Then send 3-5V logic SPI data on DIN (data in), CLK (clock) and LAT (latch). If you'd like to quickly turn off all the outputs, raise the OE pin - it's pulled low to enable the PWM outputs. Adafruit's Arduino library will get you started with blinking LEDs, install it and run the example code with the noted pin configuration.