The heater core is part of continuous loop of engine coolant propelled via the water pump, flowing through caverns in the engine, through pipes that run through the firewall into the heater core, back out the firewall, and finally through the radiator. If the thermostat dictates it (due to a temperature limit being reached), the fan blows air over the radiator to cool it.
Since the liquid flowing in and out of the heater core is constantly heated by the engine, the only other component necessary to produce heat is a fan blowing air through the heater core (much like the radiator, except the air enters the cabin.)
So, what can go wrong:
- No Coolant in the system
- A broken loop. This can be a broken/leaking rubber hose, or a crack in any component, but in the end, presents itself as a lack of coolant in the system.
- Lack of flow through the system. If the liquid in the heater core stagnates, it will eventually become too cool to produce a sufficient amount of heat. This is usually due to a bad water pump. I've seen factory pumps made out of plastic; the fins on these tend to get dissolved by certain types of coolant over time until all you have left is a cylinder with dimples.
- Faulty thermostat. An engine has an optimum temperature to be operating at. It certainly should not get too hot, but it also should not run cold; it is much more efficient once "warmed up". To faciliate staying at the same temperature, a thermostat opens or closes to let coolant flow. If stuck open, it cools the engine too much. As a by-product, the heater (which also draws heat from the hot coolant) suffers.
- No air flow through heater core (bad heater blower fan)
- Air flow through heater core, but not into cabin. Bad vacuum lines, broken or jammed circulation doors. In this case, the liquid's hot, the heater fan is working, but the air can't get into the interior of the car because it is physically being stopped by a blend door that's supposed to be open.