Gimp offers a plugin that will assist you in making your normal map called creatively enough normalMap supported by google. You can get some pointers from the Elderscrolls mod wiki on how to use Gimp to get your normal maps working properly. or you can follow the tutorial for a train normal map here, and valve has published a “tutorial” (really more of a very high overview) of the process of refining your mappings.
Has a neat little tool that can help you, but it is commercial. There is a tutorial here, and I was first turned onto this one by 3D World, but is also mentioned in Blender Nation (can’t find the reference).