Haskell's type system allows you to write programs of which you can be very certain that if they compile they already do what they should. Same can be said about Scala, if used right. This proves the statements made here to be biased by author's experience in typed languages, which seems to be limited to just Java. That is besides the fact that those statements are simply wrong. They could be true about Python vs Java, but not at all about dynamic vs static type systems.
It certainly depends on the language you're using, and I could consider Java generics a poor example of the benefits of strong typing for the reasons you mention.
On the other side of the equation, when I write Haskell, I end up needing far less unit testing. A large portion of the unit testing I do in a language like ruby, python, or javascript involves checking that functions are actually getting the right sorts of things or failing if they don't.
Hey!
Unfortunately this question doesn't fit the Slant format. We prefer "What are the best__" type questions where options can be meaningfully compared. You can read more here if you're curious.