I use spim mips emulator and have the following code in my program:

li $v0, 8
la $a0, buffer

When i execute the program it just skips over the syscall instead of waiting for user input.
I have a identical syscall earlier in the program that works fine.

What could the problem be?

maybe there is already one or more keys in the keyboard buffer ??? I don't know a thing about MIPS assembly, but that is usually the cause in MS-Windows and *nix programs. Check the contents of the buffer to see if that is what happened. You might have to clear the buffer first before calling syscall so that you can easily see any changes to its contents.