I upgraded my phone over the air (OTA) from ICS 4.0.2 to 4.0.4 a while back, but ever since then I've had problems with phone calls and getting a mobile signal.
Google appear to be well aware of this issue, but aren't really doing anything about it, marking it as "medium" priority. There are rumours that 4.0.5 has been delayed, but there's never been an announced date for the next minor version. I bought my phone to be a phone, not a small tablet over a wifi connection. It appears
there's a reliable workaround (method 4), but it requires root access on your phone. I haven't bothered doing it for a few reasons (a general fear of change, wanting to try the official user experience, and mostly because unlocking your phone will wipe your data - I'm less concerned about the warranty), but I decided to finally backup, unlock and root my phone in the background this afternoon. The two hardest parts were being patient during part 6a of the manual driver installation and trying to remember my long and complex password.