Well I think you about covered the range of problems. You would check or replace the thermostat (make sure it is oriented properly, 195 degrees), flush the coolant, inspect the water pump (for leaks and strange noise), change the radiator cap and flush the heater core. You would determine whether you are topping off your coolant from time to time (indicator of a leak). Flush the heater core by disconnecting the heater hoses and apply a garden hose to both heater hoses. Any debris noted? This often times has a temporary improvement on generating heat.
Most likely, however, this is going to be the dreaded heater core. Typically the heater core will be leaking on the passenger side, under the carpet, but you will be able to smell the coolant. The temperature control door could be malfunctioning too. It is located right on the firewall, inside the vehicle, on the passenger side. It is electrical, if I recall correctly. However, it is probably not this.
There are excellent how to's on replacing the heater core on the Internet. Try s10forum.com.