If there is no social element to a web app, should the user be asked to create a username during the sign-up process? Is username creation a pointless extra hurdle, or does it serve a purpose?
I favor using an email address and password for authentication (i.e., registration/login) rather than a username and password.
There are a couple reasons for this:
It's easier to remember what your email address is (assuming you typically use one email address for all sites) than to remember which username goes with which site.
Email addresses are essentially unique by definition, user names are not. If users must provide a user name when they register, you will typically need to make sure no other users have that user name. That adds complexity to the UI and often prevents users from having their desired user name.
You usually need users to provide an email address anyway so you can verify that they are who they say they are by sending them a verification email. So, if you allow the email address to serve dual purpose, there is less information to collect during registration.
Of course, there are other ways to handle user authentication, such as using Open ID, Google, Facebook, Twitter, etc. If you use any of these solutions, you have much less to worry about, since you are just biggypacking off of an already proven solution.
But in a word, yes, user names are redundant for non-social sites. And even with social sites, you don't need user names. You can just allow users to choose a (non-unique) screen name/nickname that has no role in authentication/log in (such as this site--User Experience--or any of the other Stack Exchange sites).
(A note on StackExchange: every user is given a unique number when they first sign up. You almost never need to interact with this number and may not even be aware that it exists, but it's there in case you change your method of authentication.)