I know some (quite a few actually) people who prefer to use a pointer if you are going to modify the variable, because it forces you to take the address of the variable, so it looks different when you call the function. For instance:
// This would tell them that the function does not modify
// the variable.
SomeFunction(var);
// This would tell them that the function DOES modify
// the variable.
SomeFunction(&var);
It makes sense. If you''re trying to debug something, and you just see: SomeFunction(var), and you used a reference, then you may forget that SomeFunction() modifies var. It''s not a big deal though.
I use a reference unless there is some reason to use a pointer, such as if I''m doing some pointer arithmetic, or bitwise operations on pointers