Ladyada released a USB AVR programmer, only $18 –
A simple open-source USB AVR programmer and SPI interface. It is low cost, easy to make, works great with avrdude, is AVRStudio-compatible and tested under Windows and MacOS X. Perfect for students and beginners, or as a backup programmer.
The project is based off of the USBtiny code & design. The main improvements are: adjusting the code to allow it to act as a SpokePOV interface, adding lowlevel bitbang commands, and addition of a “USB good” LED. Other changes are new VID/PID (to make it official), removing some of the commands, and moving around the pins a bit.
You can build this design using the schematic and firmware, or buy a kit from the Adafruit webshop. Having a full kit available solves the “chicken & egg” problem of purchasing or building a USB programmer that then needs a programmer of some sort to ‘kick start’. (See USBasp, AVRdoper, USBprog).