DotNetNuke can be a powerful platform. Most people who bash it haven't actually used it for anything, but just know that it was created a long time ago.
I can give you a couple pros and cons to look at. The major advantage of using it over other CMS platforms is that it's a very mature platform with a pretty big community around it (Snowcovered for example). For most tasks, it's either already built in or there's already somebody out there that has built a module to do it. Its architecture is already built to support caching and a farm configuration for high-availability applications, which would eliminate a major headache if you're looking at a high volume of requests.
The place where DotNetNuke could disappoint, though, is when you need to do multi-step processes in your modules. This is probably true for any CMS, but you'll feel like you're jumping through hoops to try to get multiple, separate modules to give a "tight" user experience. I don't really have a concrete example for this - it's just the feeling you get from the experience where everything is in its own "container". The other thing is that out of the box, it just doesn't have a Web 2.0 look to it. You can customize skins and stylesheets to do just about whatever you want, but for some reason this just hasn't been a big priority for the DNN camp as a whole, as much as it has for Drupal and others.
So I guess if I had to make a summary, I'd say if you are looking for a quick way to get a customizable CMS up, and you're comfortable with the limitations of CMS platforms in general, then go for it. However, if your UI is the most important thing to you and you're willing to spend a LOT of effort to make it exactly what you want, then create your own application using ASP.NET master pages and the like.