Ampliación del modelo de usuario con campos personalizados en Django

¿Cuál es la mejor manera de extender el modelo de usuario (incluido con la aplicación de autenticación de Django) con campos personalizados? Posiblemente también me gustaría usar el correo electrónico como nombre de usuario (para fines de autenticación). Ya he visto algunas formas de hacerlo, pero...