USBtinyISP is a simple open-source USB AVR programmer and SPI interface. It is low cost, easy to make, works great with avrdude, has both 6 and 10 pin standard ISP cables, is AVRStudio-compatible and tested under Windows XP and MacOS X, it may or may not work with your specific Vista/Windows 7 system, please visit the Adafruit forums before purchase.
Using this programmer and avrdude you can program any in-circuit "serial" programmable chip that avrdude supports (which is nearly all of them). It does not do JTAG or High Voltage programming. You can re-program Arduino's (and 'minimal arduinos') using this programmer. It cannot program chips with more than 64K of flash, such as the Atmega1280/1281, or Atmega2560/2561
The project is based off of the USBtiny code & design.
Kit includes all parts necessary, including microcontroller, PCB, and enclosure. A standard USB cable (A to B type) is not included, but they're quite common.
This device also functions as a USB SpokePOV dongle
For more information, check out the USBtinyISP page