We previously showed how to use an Arduino + protoshield + ZIF socket to make a programmer that can burn a lot of Arduino bootloaders. In our blog comments a user commented that he had written a stand-alone program for the Arduino called Optiloader that is similar and might be worth checking out.
What Optiloader does is kinda of neat. Instead of having a computer that talks thru the Arduino to a chip for programming, instead the Arduino itself programs the chip. This means you can program chips without having a computer involved. The good news about this technique is that it is incredibly fast, you can program chips 10x faster than with a computer and without having to type anything in. The only downside is that its very specialized, once you set it up the programmer can only do one chip (in general) with one HEX file. If you want to update it, it can be a little effort to reconfigure.
However, if you are burning a lot of chips, this can be a real blessing. We can program and burn an Arduino bootloader chip in about 5 seconds. Normally with a computer you're talking 40 seconds or so. Another nice thing is that you can make it very clear when a failure has occured. Instead of reading text on a computer screen - a piezo will beep once on success. We've found that audio feedback is way more likely to be noticed than visual feedback.
We adapted Optiloader to be more flexible - so it can program any AVR with any HEX file. While you don't need to use an Arduino for this, we have a lot of Arduino's kicking around here so they make a handy base.