Here’s an app note (PDF!) for In-System Programming Solution for AVR microcontrollers from Atmel:
• Complete In-System Programming Solution for AVR Microcontrollers
• Covers All AVR Microcontrollers with In-System Programming Support
• Reprogram Both Data Flash and Parameter EEPROM Memories
• Complete Schematics for Low-cost In-System Programmer
• Simple Three-wire SPI Programming Interface
This application note shows how to design the system to support In-System Program- ming. It also shows how a low-cost In-System Programmer can be made, that will allow the target AVR microcontroller to be programmed from any PC equipped with a regular 9-pin serial port. Alternatively, the entire In-System Programmer can be built into the system allowing it to reprogram itself.