This project details how to build a JDM style programmer to program PIC Microcontrollers using Microchip's ICSP (In Circuit Serial Programming) and freeware software (PICPgm). Total project cost: less than $10. This device has been tested on both the PIC16F877 and PIC18F4550. Check the PICPgm website to see compatibility with other PIC microcontrollers.
I used information from http://www.olimex.com/dev/images/PIC/PIC-USB-4550-sch.gif
and Ian's excellent instructible http://www.instructables.com/id/Business-Card-PIC-Programmer/
to complete this project.