Javascript dispone de dos funciones muy útiles: 
setTimeout() y 
setInterval(). La última sirve para ejecutar una función (cuyo nombre se le pasa como parámetro) cada determinado tiempo (un intervalo expresado por un número de milisegundos que también se le pasa como parámetro):   
Código Javascript
:
Ver original- var t=setTimeout("cambiarImagen()",5000); 
Luego, la función 
cambiarImagen sólo debería cambiar el atributo 
src de una imagen en particular:   
Código Javascript
:
Ver original- var i=0; 
- var arrayDeImagenes=new Array(); 
- arrayDeImagenes[0]='rutaDeLaPrimerImagen.jpg'; 
- arrayDeImagenes[1]='rutaDeLaSegundaImagen.jpg'; 
- arrayDeImagenes[2]='rutaDeLaTerceraImagen.jpg'; 
- arrayDeImagenes[3]='rutaDeLaCuartaImagen.jpg'; 
- function cambiarImagen() 
- { 
-     document.getElementById('imagen').src=arrayDeImagenes[(i % arrayDeImagenes.length)]; 
-     i++; 
- } 
El contador (i) debe necesariamente ser declarado fuera de la función, para que sea una variable global y tenga un comportamiento "estático". Creo que el resto del código está bastante claro, cualquier duda pregunta. ¡Suerte! 
 
 
PD: donde dice "& # 3 7 ;" (sin los espacios, en la novena línea de código) debes reemplazarlo por "%", que sirve para obtener el resto de una división.