OpenCV library (for iPhone) contains many algorithms. You can simply compare color histograms of images, or use more complicated stuff. Which kind of matching do you mean? Finding duplicates or calculating measure of similarity of images?
If you want to match some simple template to find objects then try Viola & Jones algorithm and so called Haar cascades. OpenCV has trained collection of templates in XML files for detecting faces for example. OpenCV contains utility for training thus you are able to generate cascades for other kinds of objects