When I use MobileMe ($99/year http://mactracker.info/detail/B001AMLRU4) I can rely on all of my contact being synchronized between my mac desktop, laptop, and iPhone. I can also access my address from any web browser. All the fields are mapped and the picture shows everywhere. When people call, I see their picture on my phone.
Exchange – I let my iPhone sync directly with my exchange server. I do not store any person contacts in my account so I primarily use it for LDAP (Global Address Book) searches.
Yahoo! – I tested this out with rather bad results. My extended notes were not sent to Yahoo! Worse, my notes and pictures were deleted from my local copy of my address book — oops. Good thing I had a backup.
Google – The results with Google were better. AIM accounts were mapped right. Dates and related people were not. Google supports pictures but not through the sync path. My information was not blown away on subsequent syncs. I was able to merge several contacts in Address Book and they were cleaned up on Google in a few minutes. GoogleApps support works with a single domain/account – -nice touch.
If you have multiple computers and do not use the extended field attributes then any of the sync solutions will work. If you need those extended attributes to work, your only option is MobileMe.