The most common cause of a heater blowing cold air is a bad thermostat. The thermostat opens and closes to regulate coolant flow. A thermostat typically opens when the coolant temperature is at 195 degrees Fahrenheit; if malfunctioning, it does not heat the coolant enough to blow hot air.
The heater core being clogged is another possible reason for the heater blowing cold air. If clogged, the coolant flowing through the heater core is stopped or slowed, resulting in cool air. A low coolant level also results in reduced flow to the heater core. A low coolant temperature is sometimes the result of a malfunctioning clutch fan or fan switch that keeps the fan running too long and prevents the heater from producing hot air.