I'm a trainee English teacher so to say and all I can say that there are many things to consider.
The best is if you have the chance to learn in the target language's country or learn from someone whose mothertounge is English.
But usually, at least in my country in small towns we don't really get the chance to use these methods. I think watching foreign movies in their original language helps a lot, plus many visual things shoud be used, like pictures, role-playing etc.. It is always good to listen to songs and look at their lyrics. Sometimes it can surprise one.

Grammar should be taught too, because that gives you a better image. My friend says, who works in London, that she conciously avoids using "I ain't got no money." and says "I haven't got any money.", because she does not want to be looked down by others. That does not mean however that grammar is everything, but the basics should be there at least. Not that I am the one who is talking with all my typos and errors.
