Jester (for Java) and Heckle (for Ruby) are tools that take an interesting approach. They attempt to discover coverage deficiencies in unit tests. They do this by mutating your code in various ways, and then running your unit tests to see if they fail. The argument goes: if the code under test changes, then a unit test for it should fail.
I would expect there to be problems with false positives, as this article confirms. However, it does mention that FPs are easy to filter out.
Here's another article on Heckle.