I trained my typing on GNU Typist. It comes with exercises for various languages and keyboard layouts, if you're so inclined.
One of the most fun typing programs I used is dvorak7min. It has a nastiness mode where for each typo you make, the cursor goes back by 1. So if you don't watch your typing, you'll be back to square 1….