I use Openfire to run my Jabber server and am quite happy with it. Probably higher-overhead than some of the other options (jabberd, ejabberd, etc.), but it's easy to install and has a great web-based admin UI.
As far as adding users via a web application - I don't know how you would go about doing that with Openfire, but it should be possible. It can plug in to many databases, and you might be able to give your web application an admin account that it can use to create users.
Alternatively, the Jabber/XMPP protocol supports creating a new account when you first connect to a server, if that's good enough for you. OpenFire supports that feature (as do most Jabber servers, I believe).
Update: The User Service Plugin for Openfire exposes an HTTP API for performing user administration actions. That's probably exactly what you need.