I just ran into the same problem with an iPhone 4S: contact names and photos stopped showing up on incoming calls or in the recent/missed calls list. I took my phone to the Genius Bar and they ran a diagnostic to confirm there was nothing wrong with the phone hardware. Their suggestion, which worked:
- Update your computer to the latest version of iTunes.
- Sync your phone with your computer via iTunes. Make sure that the sync options are selected under each tab (Sync Contacts, Sync Apps, Sync Music, Sync Videos, etc..) so everything is backed up onto the computer.
- In iTunes, select the Summary tab for the phone and click on Restore to wipe out the software and restore it.
- When the system asks, restore as a new phone (instead of restoring from backup)
- Once it's done, walk through the initial phone setup and re-sync your phone to get all of your contacts, apps, music, etc.
The explanation I got was that something in the software got corrupted and if I restored from a backup, the corruption would still be there, so I needed to restore it as a new phone and re-sync my data on to it. Bottom line is it worked, and I hope this saves some time and a trip to the Apple Store for you or anyone else that might run into this issue.
Good luck getting it resolved!
Kendrick