LanguageTool is an Open Source language checker for English and German language.
This is a rule-based language checker that will find errors for which a rule is defined in its XML configuration files. Rules for more complicated errors can be written in Java.
You can think of LanguageTool as a tool to detect errors that a simple spell checker cannot detect, e.g. mixing up there/their, no/now etc. It can also detect a limited amount of grammar mistakes. It does not include spell checking.