This morning, iTunes started hanging at “Syncing Bookmarks” when syncing my iPhone. Several tries yielded the same results, even when I left it syncing for over an hour. A quick Google search led me to this iPhone Atlas page which said you could fix the problem by deleting ~/Library/Application Support/iSync and ~/Library/Application Support/SyncServices but warned that you may end up with duplicate data.
Instead of deleting them, I just moved them to my Desktop so I could restore them if necessary, then tried to sync again. That fixed the problem and I didn’t notice any duplicates either on my computer or the phone. After the successful sync I checked ~/Library/Application Support again and noticed that iSync had been recreated, but SyncServices was not. So I dropped my original SyncServices back in and everything still works fine.
To summarize, it seems that the problem can be solved by deleting ~/Library/Application Support/iSync, then letting the iTunes sync recreate it.