For me, one of the best and basic way of improving your vocabulary is through reading and listing down all the difficult and new words that you encounter while reading. You can also try doing word games, its not only vocabulary enriching but also fun to do. If you find it hard remembering difficult words then you can try associating these words with pictures. Actually there are a lot of ways, it is up to you which suits you best. As for vocabulary software that you are looking for, I recommend you try visiting www·vocabularysoftware·net since I stumbled upon it on the internet while looking for real cool word games softwares. You can find not only software for word games but also for vocabulary and spelling. Have fun!