FOSS-base AVR ISP programming with USB
avrdude supports a wide range of programming devices, including:


Atmel's first-party programmers, including the STK500, STK600, JTAG ICE and AVR Dragon.
The USBasp and USBtinyISP, and clones thereof -- both of which are available inexpensively online
Devices which include an FTDI FT232/FT2232/FT4232 (not FT232R) USB interface
The Bus Pirate, which can be handy for other things too
Arduino devices -- either to program the Arduino itself, or to program another device
GPIOs on embedded devices (like the Raspberry Pi)