Shaka , el problema de tu función es que la variable "i" es interna, con lo que no se guarda su valor de una vez a otra. Valdría si hicieras
Código:
var i=1;
function cambiar() {
(etc.)
Pero si, como dices, quieres hacerla genérica para otras imágenes ese método no te valdrá, es mejor que uses algo como lo que te ha dicho neo.