I had this problem. The issue is that Google Contacts are 96x96 pixels and the Caller ID contact pictures are 256x256.
You unfortunately have to turn off Google Contact Sync or during the sync process, the contact pictures stored at 96x96 pixels overwrite your lovely big 256x256 pixel ones.
So, when someone calls or you call them, you're seeing a 96x96 pixel image blown up to 256x256 which obviously looks like crap.
What i had to do was disable Google Contact Sync under account settings and replace the contact images with the big 256x256 pixel ones.
I also opened a ticket on the android feedback site so hopefully Google makes the Google Contact image size 256x256 to match.