What is the right way to interpolate a 2D grid? Let's say I have a 2D grid of temperature measurements in some area and I want to estimate the temperature at some point between the samples. Or at every point, which would basically amount to upscaling an image. Which interpolation method would give the best temperature estimates?

I'm thinking that the "correct" approach would be something like this: assume a prior distribution of temperature in the area, use the measurements to update it with the Bayesian formula and then calculate either expected value or the most likely value at every point.
What a correct solution constitutes depends on the application. What you have proposed sounds more like an inference or estimation problem (that needs to be fleshed out). It would make sense if you thought your values were noisy. 

If that were the case, try looking at Kriging.

https://en.m.wikipedia.org/wiki/Kriging

If you just want to interpolate MATLAB has interp2

Which (not limited to the  2 types mentioned above) is correct depends on what your ultimate purpose is.