HoDoKu is a sudoku helper written in Java and available in English and German. It can generate sudoku puzzles in five fully configurable difficulty levels. Solve them yourself (with help from HoDoKu's hint system) or let HoDoKu do it for you, highlighting its steps on the grid, which makes HoDoKu a great tool for learning sudoku as well.
HoDoKu contains a powerful sudoku analyzer: view all available solution steps for a given state and change your solution accordingly. You can also manage multiple solutions for one sudoku and write the sudoku plus your solutions to disk.