I've been using a (mostly) free iOS app called Webu to practice my reading skills, and I've found it immensely helpful. It's basically a web browser, but when you click on a word it quickly brings up a the Japanese-English dictionary entry and plays the audio out loud. You can also quickly make a flash card for the word for later study. The flash card contains the example sentence you initially saw the word in, and it also lets you go back to the website where you originally saw the word. There are other features too, but I'd say the web browsing and the flash cards are the main ones.
It's a new app, so it's still got some bugs here and there, but when I emailed the developer he was super nice and implemented some of my suggestions. For example, I asked him to make new types of flash cards and he did! I'm pretty amazed at how kind and responsive he's been. The developer is looking for more users, of course, so I'm promoting the app here now :) Not being paid, I promise! Just want to spread the word.
Note: the free version of Webu has some limitations on how many words you can look up per hour and how many flash cards you can save (100). The limitations aren't too bad though--if I weren't studying for the JLPT this year, I would have probably just kept using the free version. In a way the limitations are sometimes good: it's helpful sometimes to force yourself to not
look up too many words (so you learn to figure things out more from context). But when you're cramming for the JLPT you do things a little differently :D Anyway, the paid features are only a couple dollars each, at least in the Canadian app store, so if you want them they don't break the bank. Link to Webu on the App StoreUser Guide for Webu
One more thing: the developer also has another app called Sabu, which is similar to Webu except that it's for videos. Mind you, I haven't tried out Sabu yet because there's no free trial version and I have no room for video files on my phone. But it sounds very useful. You can play a video on your iPhone with two sets of subtitltes, and when you encounter a word you want to learn you can click on it to look it up, hear it, and add it to flash cards. The rewinding and forwarding and such also seem to be really tailored for language learning. Link to Sabu on the App StoreSabu website Sabu feature description
Hope some of this is helpful!