Check your home router. Look in the wireless or WLAN section. Look at the type of encryption being used. If it's TKIP or TKIP+AES, chnge it to AES. Then reset the router. (Everything else is going to lose connection and have to reconnect, so don't do it when someone is about to get shot in a FPS game.)
Then "forget" the connection and try to connect again.
(Some routers implement TKIP in a way that some phones have a problem handling, so you'll connect to the internet, but not in a reasonable amount of time [unless you consider a few hours to download a small picture reasonable].)
Open wifi, like McDonalds and Starbucks, don't use encryption, so there's no problem. Many people use WEP or WPA2 with AES, so whether you'll have a problem at someone's home is pretty random.