What does it take to learn to speak good English? It doesn't require lots of money and boring classes. In fact, it can be fun!
The best language learners in the world are babies and small children. They usually can learn their mother tongue perfectly. Thus, the key to learning how to speak good English (or any language) is to spend a lot of time around native speakers, mimic what they say (focusing especially on intonation and rhythm), practice in real life situations and get immediate and regular feedback over time. Books and tapes are helpful, but there's no substitute for interaction with live native speakers. The good news is that this doesn't need to cost any money if one lives, works or studies around native speakers who are willing to talk in their native language.
Of course, it has to be a win-win trading situation or else people lose patience and interest. The best approach, therefore, is to find young people and/or grassroots people who are not too busy and/or who find it mutually beneficial to talk in their native tongue. If you can't find any, then look harder, be opportunistic and don't be shy. Two-way language trade is one fun method.
Watching TV and movies or finding a roommate who is a native English speaker can also help, but beware of negative moral influences on you. He who walks with the wise will grow wise, but a companion of fools will suffer harm. (Proverbs 13:20) It's better to be a poor English speaker and have good moral character than to be a good English speaker and pick up all the horrid language and immoral behavior that is promoted by Hollywood movies and American TV shows, especially most productions in the last 30 or 40 years. (Old movies prior to the 1970s or 1980s may be the best, although slang terms have changed a lot in that time.