Ten Thumbs is a keyboard typing tutor for Mac OS X and Windows. It also supports Linux. It allows you to test your current proficiency and take lessons to improve your typing. This application can be used by beginner and advanced users, although beginner users will probably benefit more from the lessons available.
When you run this application for the first time, you will have to input some information about you, and additionally, you can take a first test to see how good of a typer you are. You can also take the test without downloading the program. You can do that on the website and use the results when you install Ten Thumbs on any platform.
After you take the first test and establish goals for learning, you can configure the app to teach you lessons to achieve your goals. Every lesson is accompanied by a thorough report that tells you your typing speed, your errors, and your best and worst letters (the letters you have problems with, or not).
There are also a few games that help in typing, though they are very basic and I don't think would help an advanced user much.
All in all, this is a good typing tutor that works well. It has good design and lots of information on correct hand placement and sitting posture.