This problem has been plaguing me ever since I upgraded my Sony Ericcson Experia Pro ("iyokan") from Cyanogenmod 7.2 (Android 2.3.7) to 9.0 (Android 4.0.3) -- until today when I did some more detailed investigation.
It's pretty clearly a defect related to the DHCP client. When it manifests, the device fails to obtain an IP address from any access point, even those with which it had previously had no trouble. Switching to a static IP address works around the problem.
a few minutes ago, I found that deleting the contents of /data/misc/dhcp and then resetting the device cleared the problem. I'm sure it will happen again, but when it does, I'll know what to do about it.
I hope this information helps someone and perhaps leads to a fix. I can't report it is an official bug because I'm using a nightly build (cm-9-20120819-NIGHTLY-iyokan)