The exact same thing happened to me last week. I drive a 2007 328i (US specs) with about 80,000 miles on the gauge. First thing, I noticed that the fan would come on after about 20 seconds from crank. Even though the outside temperature is around 45F at the moment... Then I noticed that the heater was not working. I was driving relative short distances (approximately 5-8 miles max) and made an appointment with the dealer for a check.
Unfortunately, before my dealer appointment, I drove on the highway at about 65mph and the orange warning light came on. I slowed down to about 45mph and about 20 seconds later the red light came on. I stopped immediately and let the engine cool down. I checked the actual water temperature through the hidden board computer. It was beyond 120C (248F), that is the normal setting for the orange light to come on. I think, but i'm no sure, that at 128C (262F) the red light comes on. Anyway, I let the engine cool to 80C (176F) and drove to the nearest dealer. I had to repeat the "cool down action" a few times... I hope I didn't cause any further damage; I just didn't feel like waiting for the AAA, etc..
Do NOT drive with the red light on. Switch off IMMEDIATELY or you can break the head gasket. That is a very expensive repair!
Anyway, yesterday, the dealer diagnosed a broken water pump. I'm not sure about the thermostat, but that one had already been replaced at ~48,000 miles. Repair cost of the (electric, vario-speed) water pump: 700 euro ($900) including parts, labor, and tax. Pffff, not cheap. But then again, I can "handle" a $1000 annual maintenance fee for a 5.5-year old car and keep it in perfect condition for many years to come. It's better than the depreciation of a new car...
I didn't have a "check engine" light or other warning either. Good luck with the repair!