To steal words from a comment earlier today, Haskell has a very steep but very rewarding learning curve.
It'll reinforce some concepts from math, and lead you toward writing code in a manner that's considered good practice in other languages - such that it's generally maintainable and testable. Similarly, if you're familiar with Design Patterns, you'll see that a lot of patterns are attempts to implement functional concepts in OO languages. That said, as a fan of Haskell I'm definitely biased, and a lot of that can be said for other functional languages as well.
"Real World Haskell" is also very good, but probably not the best place to start if you haven't written in a functional language before.