Editing contact in GMail overwrites iPhone contact photo with a poor quality picture
Solution 1:
As of September 27, 2012, you can use CardDAV on iOS 5+ to sync your Google Contacts. Switching from Exchange sync to CardDAV seems to fix this issue.
http://gmailblog.blogspot.co.uk/2012/09/a-new-way-to-sync-google-contacts.html
http://support.google.com/mail/bin/answer.py?hl=en&answer=2753077
Solution 2:
No. It looks as there is nothing one can do. Except, of course, wait for Google to fix it themselves.
The reason for the quality loss is explained all over Googles boards, ex: here.
In short: Google resizes the pictures to a 64x64 grid, which is blown up/zoomed to the iPhone screen when needed. This makes it blurry and pixellated.
That means that even changing the pictures of each and every contact in the Google Contacts web-interface wouldn't help, as 64x64 Pixels are just too small.
For me it helps to know that I can't do anything about it, though this is certainly not a solution I like. Now I know what to look for.
Solution 3:
Someone posted a workaround for this problem in the Google forum linked in Wolf's answer.
In GMail, go to Settings->General, and change the Contacts' Pictures setting to "Only show pictures that I've chosen for my contacts".
This has the side-effect of only enabling syncing from the iPhone to GMail, and not the other way round, thus fixing the low-resolution picture problem.
Of course this fix will mean that you will no longer see the pictures that your contacts have chosen for themselves, but that's not a big loss for me personally.
Solution 4:
Gmail does resize the contact photos and will only appear as the small photo in the top right when a call is received. Simply taking a photo on your I phone and assigning it to a contact will only revert to the small photo in seconds as soon as the phone syncs with gmail server. Put your contacts on your phone and don't sync with gmail if you want full screen contact photos to display during calls.