Everyone has most of the tips covered, but when picking your reading material, remember that it should be diverse and 'useful'. Don't read new-age novels like Confessions of a Shopaholic or Twilight. Albeit they're good stories, they use slang and colloquial expressions, and aren't so useful if you're upgrading your English. Read unabridged versions of novels by Jane Austen, Charles Dickens and similar authors. Underline difficult words and look up their meaning, and make it a point to use at least one difficult word in your day-to-day conversation. For instance, innocuous: it means harmless. Now, remember this word and whenever you get a chance, use it! It's an innocuous practice, in fact it has a lot of benefit! Unless you use it incorrectly, after all who said it's innocuous to kick a dog?
If you're not bookish, like me, watch a lot of English television. Preferably with subtitles. News broadcasts, drama series and movies are a fun and interesting way to improve your spoken English, as it helps you to grasp the accent and also can add to your vocabulary.
Lastly, there are a lot of grammar and vocabulary quizzes online. Like
http://freerice.com/ where you can help poor children as you upgrade your vocabulary. Google some more and play these games regularly, and before you know it you have an A* English! <3 Best wishes.