su <user> or su - <user>

Besides the profile being loaded for the later, what other privileges are obtained ?

su - creates a login shell - it's more like logging in that with just su.

See the difference:

/root # su oracle
/root # echo $0
ksh
^d
/root # 
/root # su - oracle
/home/oracle > echo $0
-ksh
/home/oracle > 

Usually the reason for "-" is that you want the same environment you'd get by logging in as that user, $PATH especially.

Use "-" when you need to know what happens when "sam" logs in: su - sam is going to run sam's shell startup files etc.