It is probably going to be most efficient in any pipeline to make the low poly model first, and then subdivide it and detail it to make the high poly, then generate the normal map for it. Assuming we are talking about game models, this is the Ogre forum after all, the low poly is important to have because it is going to be what people see in-engine. If you create the high poly first, it makes it difficult to ensure that your low poly model will be as optimized as you need it to be. By this I mean your UVs etc. As soon as you have a high poly model and get a low detail model from it, and then edit your low detail model to be what you want, you are no longer guaranteed that you will get good normal maps from it. This is at least the case with ZBrush, if not other solutions as well.
If you are going to try the other way around, like if you have ZBrush for example, which creates various version of a model all in one tool, it is still a bit cumbersome. Zbrush can recreate your subdivision levels,
but your model HAS to be made with only quads for this to work. You can do something entirely in ZBrush and then take the low poly version out to another program and then do the uv's etc, but when you take it back in, it has to have the same number of polys and vertices (ie. no editing) in order for you to be able to replace your lowest level mesh with your modified one. I did do this with that ogre head(
http://www.ogre3d.org/phpBB2/viewtopic.php?t=15170), because when I brought it into ZBrush, it had no UVs setup for it. I did not make my texture until I was completely done detailing, so I took the low poly version (the ogre you see there) and imported it into Blender, set up the UVs and then imported it into my tool in ZBrush. In this way, I still keep all my high detail stuff, and then create UVs. So what I got was a good normal map for use in Ogre that still let me paint my texture the way I had intended.
I have have also heard that ATI and NVidia's tools for creating normal maps are better for games than the ZBrush or MAX ways of doing it. I actually havent compared this myself, but it is something to think about.
To sum up, it is defintely possible to go both ways, but it probably depends on your tools (and pipeline). Try it both ways in your pipeline and find out what works best for you.