Here's the
workaround for HTC Desire (and probably for other devices with Sense UI):
You should create additional contact and save it
in phone memory. Contact info can be empty and it's not important what name you'll choose.
Then you should add a photo for this contact.
Next step is to create a link in People between this new contact and that one stored in Gmail account. By pressing Menu key during link creation you have access to options to choose name and photo for this "linked contact". You should choose photo from "Phone".
The result is you have high quality photo in your caller ID!
Also, you have duplicate contacts: one from Google account (but it's still synchronized!!
, second from your phone internal memory. But it's not a problem - you won't see those duplicates as long as they're linked.