Thank you very much! I'm working off of a Sanguinololu board, I'm guessing I'll have to find supporting files before I can use AVRdude with it?
AVRDUDE through it's avrdude.conf file supports the 644P chip already so you shouldn't need any 'support files', just a hardware programmer that avrdude can work with.
avrdude will do this, unless the flash in the source chip has been protected.
For reading flash to an intel hex file, it would look like:
avrdude ... -U flash:r:myfile.hex:i
oops. Since I've been beaten to the punch, I'll point out that it SHOULD be possible to do this via the bootloader as well (which may well give you a .hex file that contains both sketch AND bootloader.)