Honestly I don't think a few paragraphs can do it justice. The term isn't even very well-defined - are first class functions enough? No side effects / immutability?
Personally I feel that while writing functional style code - by which I mean using passing functions as parameters and avoiding side effects - that can be help in most languages. But it offers a lot of guarantees that are really powerful if you can actually rely on them, which you can only do (imho) if a compiler verifies them. So I'm the die-hard that Jason Knight talks about, I guess.
Anyway, I would recommend to read a somewhat longer description of it. I am not very qualified to explain, and this answer would get way too long if I were. But a summary:
The main downside being that things that do use side effects can get really complicated, like reading files. It's also far removed from how hardware works, which is sometimes a disadvantages but usually great.