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 to 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; these tend to get dissolved by certain types of coolant over time until all you have left is cylinder with dimples.
- No air flow through heater core (bad heater 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.