I found a solution to this problem that may help you. I had this problem for all three of my iphones (3g, 3gs, and 4). The problem was my exchange account. I had all my contacts in my exchange account and they were being read from there. No contacts where stored on the iphone (All on My iPhone group). When I did an iOS upgrade or made changes to the exchange account on the iphone it would resync everything and erase my ringtones. I assume this is because exchange has no reason to store that information, therefore, there is no field or placeholder for it. So all my exchange contacts would be there but the ringtones would reset to default. I also noticed after upgrades that my contact pictures were degraded, probably because it was pulling the small resolution pics from exchange. Anyway, I moved all my contacts to the iphone and turned off my exchange contacts. I haven't had a problem since. I assume mobileme works the same but I'm not sure. Hope this helps.