Thermal compensation is needed when you want to measure absolute temperature.
When you are reading a voltage produced by thermocouple, it's proportional to temperature difference between environment where the junction is and ambient temperature. If you want to know the exact temperature of environment you are measuring, you have to add ambient temperature to temperature readings from thermocouple.
This can be done in several ways - analog or digital. There are analog cold junction compensation chips like LT1025, which produce a voltage that is equal to voltage the thermocouple would produce if it's other end would be in ice water at 0C and the junction at ambient. Then you connect thermocouple in series with the output of this chip and amplify it's output.
If you are using a microcontroller, you can get ambient temperature from a digital or analog sensor directly to microcontroller and add it to thermocouple readings in software. This way you can use an opamp with low bias current and low offset voltage to amplify thermocouple output.
There are special chips from Linear Technology and Analog Devices for K-type thermocouples, that amplify thermocouple voltage to some usable level AND provide cold junction compensation out of the box:
AD8494
AD595
They both provide free samples.