Using SURF algorithm to match objects on MATLAB
People generally use Euclidean distances, just like you do and it works as it is, pretty well. However, if you require further robustness, I propose the following:


Compute the matching both ways: image1->image2 and image2->image and then retrieve only the agreeing matches. This introduces some consensus.
Assuming you have planar patches, you run a homography using RANSAC. The good thing here is that RANSAC is robust to outliers, given a predifined tolerance. This way prune away a lot of matches, and you will be left with a meaningful set of inliers.


Using these two together should really give you robust and repeatable matches.