Any thermometer you've likely got around the house is, if you're old-school, filled with mercury, which of course expands and contracts depending on the temperature. If you're old-school. Mercury also has the little sniggling problem of being toxic, which has led various countries to either recommend you use something else or outright restrict or ban their use. Galinistan- an alloy of tin, gallium and indium- is a popular alternative, as is going digital, relying on the heat sensitivity of platinum to give the reading.
Or you could use light, if you are a laboratory with grant money. A team at the University of Adelaide in Australia has created a light-based thermometer capable of accuracy to within 30 billionths of a degree, which downright obliterates the previous accuracy record of being within 100 billionths (also by a light-based thermometer), which, yes, there are thermometers that accurate too.
The way this works is, there's a crystal shaped like a disk, and red and green light is sent spinning around that disk. Light, as far as we know anyway, can't go faster than the speed of light- 186,282 miles per second. However, it can go slower. Much slower. Light only goes the speed of light in a vacuum, and Earth is decidedly not a vacuum. In 1999, a team at Harvard managed to slow light down to 38 mph when shining it through sodium cooled almost to absolute zero. In 2001, they got it to a standstill by shining it through rubidium gas. That's the principle being used here: the crystal will be the conductor of heat, and however fast the red and green light is spinning around it, and the difference between the two, more to the point (light changes speed depending on its color; this is long-story-short how a prism works), tells the temperature.
Don't count on buying one of these soon, of course; they're only talking medical and business applications right now.
The source study can be found here.