There are many programmers for the ATMEL AVR Controllers on the market.
I think the best Idea ist to use the original ATMEL AVR ISP MKII.
As software you can use then AVR STUDIO 4. Unter the Tools you can find the Menu "Programm the AVR" Chose there your used Programmer and you can setup and Programm your controller.
Most People i know use in system programming for the AVR Chips.
Therefore must be connected MISO, MOSI, SCK, Reset, GND and +5V from controller and programmer together.
At some chips e.g. ATMEGA128 would be used other pins for ISP Programming!
Also you can use a JTAG Interface, or High Voltage parallel programming to put your Programm into the chip.
Most Compilers have own programm download software included. You can use it too, when the used programing hardware was suported.