For typing stories I try Amphetype (programmed by tristesse member of this forum) and it has an option that automatically detect your weaker words from your typing and let you practise them.
The program gives you a lot of statistics that help you to improve from your mistakes, as well as a lot of options (the required accuracy to pass a text or a review, ability to type a whole novel and read them through typing is excellent).
Amphetype is definitely a tailor made software to learn touch typing efficiently. It does not have much graphics and fun stuff, but I highly recommend it to any typist that wants to improve their typing skills.
Here the Amphetype project homepage:
https://code.google.com/p/amphetype/
Download Amphetype (Windows, OSX):
https://code.google.com/p/amphetype/downloads/list
Backstory of the author tristesse
=====================
About 4 months ago I attempted the difficult switch from Qwerty to what is commonly referred to as the Dvorak layout. I didn't know touch typing, so I had to learn that at the same time. It was hell on Earth. It probably took me a full week just to be able to snail away at 20 WPM and after a full month I was still only at 40 WPM. Dvorak is impossibly hard to learn.
That's when I discovered Colemak, a layout that promised to be even more efficient that the Dvorak and much easier to learn. I was intrigued and found that it fixed most of the issues I had with Dvorak, which only added to my frustration over not having discovered it sooner after having put so much effort into learning Dvorak. But finally I made the decision to switch again. Since this time I decided I was going to do it right I even went ahead and made my own keyboard layout based on a mix between the Colemak and the Norwegian Qwerty, but moving a lot of the common punctuation to the home and upper rows using the AltGr key.
After a week I was already as fast as my best speeds with Dvorak, and after a month I was at a more comfortable 65 WPM. Today I am at around 75-80 WPM, which is almost as fast as I once was on the Qwerty (80-85 WPM).
Now, in my long quest for learning a new layout, I have grown fond of programs and sites that help you measure and improve your typing. However, there is a lot of things lacking from most that I'd like to see. The two main things are:
* Texts that make sense: I am a big fan of Typeracer where you type actual quotes from popular culture (books, movies, songs). This gives you some shallow entertainment as opposed to just typing nonsense language-agnostic syllables which I find very dull and unrewarding. I also played some with TyperA which gives you random sentences, but they are cut off at awkward points (can't separate "." in abbreviations from proper end-of-sentence punctuation) and sometimes they're part of a joke that you don't get to see the follow-up to -- very annoying! A better version in this respect is Hi Games' Typing Test which at least give you random fragments instead of just half-sentences.
* Automatic lessons based on problem words (not just keys): TypingMaster Pro Satellite is an ingenious (albeit commercial and Windows-only) program which monitors everything you type and tells you which words and keys you have problems with (probably inferred from speed and backspace usage). So far I haven't found any alternative to it, nor even a free program which tells you what words you have problems with.
So basically when I wrote the first version of Amphetype on a long and boring ride on the night train these two items is what I had in mind: the ability to type texts from favorite novels, moves, web sites, whatever, and detailed statistics about problematic words and keys which can be used to generate new lessons. And that's what I've done.
From feedback from friends I've also added the ability to type whole books fragment by fragment so you can read them while practicing typing.