When I want to make sweeping changes, I can trust the compiler to remind me everything that needs to be fixed.
I barely have to test anything, because if it compiles, more than 90% of the time, it will Just Work. When I do test, Haskell makes testing far easier, with packages like QuickCheck and its rich types.
I don't write performance intensive code, but when I wrote this kind of code in Python, I still had to battle with performance problems a lot. In Haskell, performance is great out of the box and I rarely have to deal with that.
Haskell gives me useful guarantees that make mechanical refactorings so much easier, leading to more code quality.
Haskell is lazy allowing me to write more modular code, and enabling a lot of useful techniques (See [1]).
Haskell gives me access to state of the art techniques in various fields (accelerate, safe transactional memory, nested data parallelism, vector and list fusion, ...).
Haskell expands my mind, and makes me understand code and computation more deeply.
There are so many reasons to use Haskell...
There are a few reasons not to use Haskell, but the most major one, in my opinion, is the initial difficulty of learning it.
Overcoming that difficulty is well worth it for career programmers, in my opinion.
[1] http://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pd...
If you already know what haskell is about, id say its killer feature is the rich type system. Not only is it very complete (including support for generics, overloading and much more) but the ecosystem as a whole is oriented towards static safety guarantees and having the compiler help you avoi errors. For example, option types make so you never ever get a nullpointerexception and after you get the hang of it you can also start encoding other proprties of your own. As a bonus, the language itself is quite clean and pretty, something I find surprising for a language designed by comitee.