"But is it the best option to use one AVR cpu to program the other. "
Yes. Most of the AVR ISPs do just that.
See the video here
http://arduino.cc/forum/index.php/topic,68183.0.html
Another option is to bit-bang the bootloader in using the FTDI chip:
http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html
Works under IDE -0022, don't know about 1.0.