Well if it were me, I'd have it in to the BMW service department and their computer readings would tell them right away. But the first suspect is the the thermostat, if its red lined once, clearly there is something wrong with it.
But I can give you my experience with this problem, and you might not like it. There are two other causes of this (other than a sensor needing replacing), one is the heater core has become clogged, which doesn't happen on most cars but it did on my dearly departed Mazda Protege. This will restricted air from warming up, so since you car does warm up it might not be that.
The other your rings, if you are going through lots of oil and smoking a bit, you could have "blow back" which will affect your heating system as well..
Good luck and I hope it something cheap for you.