I did a flush on mine, and didn't really notice a huge difference but it's worth a shot. First off, have you done any maintenance to the cooling system lately, or have a slow leak in the system somewhere? A low coolant level will render your heater completely useless, check your fluid level first

Flushing is simple. Leave the two coolant hoses attached at the bulkhead where they exit (next to the battery in the engine bay) and follow each to where you're able to disconnect them. Stick a garden hose in one end and flush for a minute or two. Then do the other hose, and repeat several times. The point is to cycle water both directions through the core. Re-connect, start and run to temp with heater on. Turn off, let cool, and fill radiator back up. You may have to run the engine through several hot/cold cycles to get all the air out of the core. However, once the engine is at operating temp, you 'should' feel a sauna coming through the vents. If no, keep checking the coolant level. If it won't take any more, then it's probable that your core is too gunked up and needs replacing. Hope this helps

The above is really good advice. The only thing I would add is that I would make sure to reverse flush the heater core first so you don't push the embedded crud into the core further than it already is. Just unhook one hose first and briefly start the engine to see which way the coolant is flowing through the core, then flush the core with a hose in the opposite direction.