Can you use the Arduino as an AVR programmer?
I use the mega-isp solution mentioned above - the Arduino avrisp sketch is here
I do not use the shield they have - I made up a simple cable using two 6 pin dual-in-line header sockets to fit the programming ISP connector on your Arduino. (I did not have two dil sockets so I used standard single in line and superglued two 3 pin sockets together.
You then need a piece of ribbon cable or some wire.
Connect each pin on one socket the the corresponding one on the other, with the exception of pin 5 = Reset. Connect one end of the cable to pin 5 - this is the end that will connect to the target AVR that you wish to program. Connect the other end of the pin 5 wire to a floating pin connector.
To use connect the cable to the arduino by placing over the ISP programming connector and connecting the floating lead to digital 10, connect the other end to the target ISP connector. You need to ensure that the pin 1's match up.
Program with avrdude using
avrdude -P com7 -p t2313 -c avrisp -b 19200 -U flash:w:fred.hex
I have used this to program Tiny2313 with no problems.
Note: The cable will carry 5v to power the target - if the target is already powered then do not connect pin 2 of the cable.
This solution works great too: Kimio Kosaka avrdude-serjtag method
If you have assembled you own computers you may have spare case mounted USB cables/connectors that often come with new moherboards. Just wack off the USB end and you can use the motherboard connector as the ISP connector.
A batch file like this can be used: (This is for the 328 chips, will set the fuses for high speed transfer and then upload the bootloader, and setting the lock bits when finished.
Yes, you can use the Arduino as a AVR programmer!
Take a look at the mega-isp project.
If you need hi-voltage programming (you have an otherwise dead chip) you can try this solution http://www.mightyohm.com/blog/2008/09/arduino-based-avr-high-voltage-programmer/