I would recommend CardRunners or StoxPoker for Cash Games. You can actually get Stox Poker for free for six months by signing up through a Poker Site on PocketFives. Here is the link for that:
http://www.pocketfives.com/free-trainingFor tournaments I would recommend PokerXFactor.
There may be cheaper options available, but if you are serious enough about improving your game I would go with a proven commodity like one of the three above.