We are currently considering using DotNetNuke as a base for our future portal-based and client-customizable web application that is going to be hosted centrally. The idea is
I've been working in my current role now for 6 months and develop almost exclusively in DNN. Prior to this gig, I had no DNN experience. So this will give you an idea of where I'm coming from.
DNN was really easy to learn. The admin interface is fairly intuitive and the code base is extremely consistent. I've rarely needed to refer to the DNN book on my desk (usually just for the esoteric details.)
The hydrator pattern that DNN uses for object creation out of the DB is pretty slick and works well. It also forces you to keep your object properties succinct with your sprocs/queries, so confusion is kept to a minimum.
There are tons of 3rd party Module developers. And the modules are usually pretty cheap. So you can save money utilizing these. (SnowCovered & DNN Market Place)
One thing that I've noticed and we've not been able to figure out why, but DNN will just drop it's skins from time to time. There's no errors, or apparent reasons. It just doesn't apply them and won't do so until the server is restart.
Documentation is brutal. If you're going to use DNN, get a book on it. It's easy enough without the book, but when you need reference material there is NONE to be found that is at all helpful.