Haskell does not try to avoid
side-effects as much as control
them. Essentially, this means that Haskell is good at managing
state. In Haskell you avoid using state for control flow or organizing your program, but you can still easily use state if that's what you're modelling or working with. This means that Haskell is perfectly good for things like managing a persistence layer (e.g. database).
So you would get all the normal advantages you get from Haskell: expressive code,relatively good performance, ease of maintainability and so on. This is a major advantage for writing the generic logic parts of your web app.
There are also some web-development-specific advantages. You can use the type system to help you avoid bugs common to web apps. Take a look at the Yesod Web Framework for Haskell
for example. Among other things, they use the type system to ensure that internal links never break and to prevent SQL-injection vulnerabilities.
You also have the advantage of Haskell's new IO subsystem. While many people seem to think that Haskell is bad at IO, this is simply untrue. If anything, Haskell makes working with IO easier than in other languages. For web programming, you get the performance of an asynchronous event-based system (like Node.js) without having to write asynchronous event-based code: you can just use Haskell's extremely lightweight green threads. The runtime then uses kqueue or epoll to manage your green threads. These can also be mapped to multiple OS threads, making it trivial to use multiple cores. This system can easily scale to millions of threads and millions of concurrent network connections.
Haskell is also a very flexible language without much boilerplate. Yesod takes full advantage of this, presenting you with some very useful DSLs for web development. This makes it easy to specify things like templates and database schemas in Haskell, while still retaining the advantages of typechecking.
So, with a web framework like Yesod, Haskell is not only good for the generic logic parts of your program but also has some advantages specific to web programming. It offers better performance, more expressivity and some nice features for security and robustness. There are some other frameworks like Snap and Happstack, but Yesod is the only one I'm familiar with.
As an example, Yesod was used to build the School of Haskell, and the people working on that project were extremely satisfied with it.
: School of Haskell Goes Beta
Conicidentally, the School of Haskell is the perfect place to learn about Haskell, Yesod and making web applications. They have some innovative support for experimenting with the technologies and some tutorials specific to web development.