simplified block diagram of PWM operation
(from PIC 16F1509 datasheet)
I'll use the PIC 16F1509, teach you the basics, so you can arrange the code to other PICs too.
My new project (lucky me) needs 4 hardware implemented PWM source, but I noticed that the pic microcontrollers usually have just 2 or 3 PWM modules. then I discovered this useful page: http://www.microchip.com/maps/Microcontroller.aspx which allows you to perform a parametric search over the complex pic-world. I ended up with the PIC 16F1509, which seems to be perfect: USART, 4PWM, comparator, 18 I/O pins, ADCs AND software selectable frequency for the internal oscillator!