Always take into account your elevation above sea level when using boiling water as a temperature reference. Here (about 5300 feet above sea level), distilled water boils at about 94.3 degrees C. So you need to know what the figure is for your elevation.
And remember that salt or other impurities in your water can raise its boiling point or lower its freezing point.
An improperly prepared ice water bath can give you readings that are quite far off due to impurities in the water (freezing point depression) or contact of the probe with large pieces of ice that are below freezing from having just been in a freezer (which must, of course, be quite far below freezing so it can effectively freeze foods, many of which will have freezing points well below that of pure water). Also, large voids of free water between ice cubes can read too high.
For best accuracy, you should use distilled or deionized water for both the ice and the liquid water, and grind/crush the ice to "the consistency of a snowcone". Then make sure the water just fills the voids between the ice particles. Not too watery, and not too dry.
Be sure not to touch the water or ice with your bare hands to prevent salt and other impurities from contaminating the system.
Think about how salt is often use to melt ice on roads and sidewalks. This is a demonstration of freezing point depression.
Being fairly careful, it is easy to get very accurate results. But not taking your elevation into account for boiling water, using impure water for both boiling and freezing point, and not preparing an ice slush correctly, can all give significant errors.
(Sorry. This subject brings out the temperature measurement nerd in me).
Tabbed in.