Are you getting any heat anywhere at idle? One option is that your water pump is weak and you are only getting enough circulation to the heater core when at higher RPM. The fins on the water pump like to corrode over age esentially leaving you pushing water with cheasecloth or little stumps for an impellor.