There are many ways to create normal maps; Basic normal maps can be created pretty effectively straight from images or height maps using programs like Crazy Bump
[link] or Ndo 2
[link] The most effective way is to bake from a high poly mesh or sculpt. You can bake maps in most 3d programs these days, Maya
[link] and Max
[link] been the best in my opinion. xNormal
[link] is also a invaluable program for baking normal maps. There are many articles and tutorials around the net. I suggest checking these sites out for info;
[link] 3d motive
[link] eat 3d
[link] polycount environment sculpting
[link] polycount character sculpting
[link] philip k tutorials