vBulletin has support for all of this, as does WordPress, and probably a hundred other pieces of software.
The downside, as always, is that you become a sysadmin and moderator and hacker and on-call technician.