Mmmm .... depende el contexto:
Si es PHP4, por defecto todo es pasado "por valor" y si tu quieres que pase "por referencia" (es decir, siempre enviar y usar el mismo objeto real) deberás decirlo de manera explícita.
Si es PHP5, esto cambió. Ahora los objetos son todos pasados "por referencia" (siempre), lo cual no debería ser necesario hacerlo de forma explícita (haciendo uso del &).
Nota: los objetos, no todas las variables. Si pasas una variable, esta sigue pasando "por valor" sin importar la versión de PHP, lo cual deberás hacer uso del & para decirle que es una referencia.
Definición: piensa en "por referencia" como un puntero de memoria que apunta a la misma variable siempre, y "por valor", copias de la misma, o sea, nuevas variables con el mismo valor. Si lo haces por referencia, y modificas sus valores, el resto que reciba esa variable conservarán el valor anterior. De lo contrario, cada vez que pasas la variable, solo pasas el "valor" (como dice la palabra), no manteniéndose los cambios que hagas si lo recibe otro.
¿Si es mejor? Bueno, si así lo hacen los lenguajes OO y PHP5 lo copió, debe ser bueno que así sea
PD: lee este capítulo del manual de PHP, que tal vez te aclare un poco más:
Capítulo 21. Explicando las Referencias