Hi Ben,
How do you program the flash now? The same method can be used to read the flash.
If you have an FPGA controlling the flash, then you can do what you like with it :)
For example, create a design with a JTAG-to-Avalon-MM master and a Avalon-MM slave Flash controller, and just read the contents of the flash into a file.
That same content can just as easily be programmed back into the flash on another board. Although you might need to build a 'flash programmer' component if there is a timing requirement between commands while programming the flash that cannot be met using the JTAG interface. That would depend on what type of flash you are trying to access.
Cheers,
Dave