More self-advertising
The Ziff socket programmer is a very good powered programmer - I wouldn't call it worthless :wink:
There are many differences between the dongle and powered programmers. With power programmers you have the benefit of isolating your computer's serial port from overloading damage. I haven't managed to do harm to my motherboard yet - and we've done some really silly stuff - but anything is possible! And as kinjalgp pointed out, if you do not need the extended PIC support, go with the cheap programmer.
I used a Warp13A extensively for about a year before I fried it with some wire trash under the programmer - never thought it would happen until some sparks and blue smoke and $100 evaporated!
I moved on to the PG1 serial dongle programmer thinking it probably would be more hassle than anything. Wow. I don't want to go over board, but it does everything I need.
If you are programming a popular flash PIC (16F628, F84A, F873A, F876A, F877A, or even some of the exotic F819s or 12F675) the PG1 is the programmer you need. I've sucessfully programmed all these PICs in circuit on a breadboard.
If you would like to work under MPLAB and would like the rock-solid dependability of a PicStart+ programmer, the more expensive MCP is for you.
If you are trying to program PCBs fully of capacitors and ICs that require a noticable amount of current - you will want a powered programmer. The computer's serial port simply does not have the needed power.
www.sparkfun.com