A car's heater does not generate heat if the coolant level is low or restricted by buildup, if the water pump failed or if the thermostat is broken. The heater fan is also sometimes an issue.
According to the Popular Mechanics website, a common cause of a car's heater not working is a buildup in the heater core. Grime or other sediment accumulate in the core and restrict the flow of heated coolant that serves as the source for the heater. The coolant needs to be flushed and replaced. This problem also occurs if the coolant is low, in which case it needs to be topped off.
Another possible problem is the thermostat. The thermostat controls a thermal valve that opens when the engine gets hot and closes when it gets cold. If the thermostat is worn out or broken, the thermal valve might remain open, which does not allow the coolant to warm up enough to provide heat for the heater. The thermostat then needs replacing. This problem also occurs if the water pump fails, in which case the car also overheats.
If the heater core is functioning properly but only a trickle of heat is coming from the vents, the problem might be the heater fan. Either the fuses for the fan or the whole fan might need replacing.