Amphetype is a layout-agnostic typing program aimed at people who don't need an on-screen keyboard, but would still like to improve their speed and accuracy.
WPM, accuracy, and viscosity (as the opposite of fluidity) statistics on texts, words, keys, and trigrams. Historical data can be grouped in several different ways (by days, averages of 10, etc.).
You can generate text fragments to type from Project Gutenberg or any other plain text source to practice typing with your favorite novel. There's even an option that lets you type texts in order, fragment by fragment. Read a book with your fingers!
Advanced lesson generation: auto-review slow and mistyped words after every text or generate custom lessons to practice problem words, keys, trigrams, etc.