I suspect a low coolant level or leak is starving the heater matrix of hot feed. Check your engine coolant level and top up if required. Remedy leak or situation will reoccur. Remember to bleed any air in the system by loosening the bleed screw in the pipework (right of fuel filter housing as viewed from under bonnet) otherwise you will still have an unfed heater matrix. If your coolant level is fine check to see if it is contaminated or is just plain water. Either condition will potentially cause system blockages with subsequent heater starvation and/or engine overheating. Flush the cooling system thoroughly and refill with the appropriate anti-freeze water mix.
Batman, March 2008