I use this program (a set of Python scripts in fact) to generate background images for GPSMan. It's not so reusable for the way I reference maps doesn't correspond to the "usual" way (the GeoTiff way for instance). However I think the method I use is the fastest when you just want to reference a set of scanned paper maps. I simply mark 3 points on the scanned image, and store their coordinates "in the real workd" (WGS84) and in the image (pixels) in a plain text file. The script does the rest, and it's capable of merging several scans into a single background image, doing affine corrections.
Use at your own risks.