I was having similar sync problems after I upgraded my iPhone 4 to iOS 5 but found a simple solution.
Cancel the sync in iTunes.
In iTunes turn off Genius (Menu > Store > Turn Off Genius). Then un-tick the Sync options for all the following for your device (iPhone, iPad etc.):
Sync Ringtones
Sync Movies
Sync TV Shows
Sync Books
Sync Photos
Now press the Sync button. All the items will be removed (quite quickly, if not un-plug the device and plug it back in). Subsiquent pressing of the Sync button will now complete fully and quite quickly.
Now go back to iTunes and reselect the Sync tick box options for all the items you disables as in the list above.
Press the iTunes Sync button. After all the items have been re-synced press the Sync button again as some further artwork may need syncing.
Now turn Genius back on (Menu > Store > Turn Genius On) and then press the Sync button again. After it finishes press Sync one more time and after this all should be back to normal. 🙂