Bueno, gmail anda con AJAX, como la lejía sí. Creo que en este caso en concreto gmail ya recoge al principio las direcciones a las que escribiste en alguna ocasión, de esta forma mediante javascript (un evento y una o varias acciones), va escribiendo lo que coincide con tu entrada de texto. Creo que esta parte no se actualiza asincrónicamente porque el refresco es demasiado rápido, aunque todo el sistema anda sobre muy pocas páginas y un javascript muy pesado.
En la sección de tutoriales tienes cosas sobre AJAX y javascript. Si quieres aprender sobre eventos te recomiendo que busques en
www.quirksmode.org . Para conseguir el mismo efecto yo haría primero un pseudocódigo de este "autofill".
1) recoger de una BBDD u otro los valores. (los correos).
2) onchange o similar del input compruba la coincidencia del valor introducido
2.1 Bucle para comprobacion de todos los valores
dentro del bucle...
2.2 Buscar expresión regular o funcion ereg de php u otro... para encontrar el match entre dos cadenas.
3) Guardar en array valor que AÚN coincide.
4) Mostar valores de este array en cajita azul.
Está interesante esto... ya nos contaras (si no lo hago yo primero) .P
Un saludo