I've got a PIC "Pocket" programmer. It was a kit made many years back by one of the PIClist gurus Tony Nixon. It has a ZIF socket, a 16F876, a 16x2 LCD display, and some eeprom memory chips. All on a small PCB about pocket sized.
It can read a PIC, store the hex file in it's eeproms and be used to make copies so I got it as a production programmer that grunts could use in the workshop to program PICs without needing a PC and without any chance of wrecking the source code haha.
**broken link removed**
It's a very nice little unit, I don't know if you can still get them... You can see more pictures and specs etc here;
Oh yeah it can receive a HEX file on it's RS232 port as well.