My 525ia has almost no heat.
My problem is a failed t-stat. Apparently, BMW engineered their t-stat to fail wide open (kudos to them) instead of failing shut (like GM, Ford, etc...) the result is your engine won't fry out, but it also runs cold. The heat is drawn from the warmth of the coolant, so colder coolant=less heat in the cabin.
My engine gets out of the "blue area" when the temp is above 55 or so. When it's 70 here I get all the heat I want!
I don't know if this is your problem, but figured I'd share what I know.
-ashley