I had the same problem after upgrading my Moto Milestone 2 to 2.3.6 Vivo ROM. When I went to class at university I had "Emergency calls only" - not "limited service" or "no service". So I had receiption... Also I could select any other provider but not my own (T-Mobile Hungary). The same thing happened when I was at home, in the house. The strange thing was that I didn't have any problem at any other place. Also, when I locked my screen and didn't use the phone, I had bars and could receive calls&sms, but after waking up the phone, the bars went down to 0 and got the "Emergency calls only" message.
I Googled a bit and found an answer which was worth a try before asking for a new SIM card from my provider ('cause that was the only solution I found in every other forum).
So the things to do are:
- dial *#*#4636#*#*
- go to Phone information
- Scroll down to "Set preferred network type"
- Select "GSM auto (PRL)"
My default was "GSM only" and after setting to auto I had full bars.
One thing to note: I don't use 2G or 3G or 4G or any other G. I just use WiFi for browsing and other than that, GSM to receive calls and send SMS. If you need 3G I think you need to change to some other settings. But you should give it a try.