Looks secure to me!
You could throw in an iteration count if you felt like it, e.g., loop this 100 times just before your final line:
SET @strPassword = HASHBYTES(@strHashMethod, @strPassword)
Alternatively, the IC (iteration count) could be a random int between, say, 100 and 1000, and stored alongside the hashed password and salt in the underlying table.
Slightly odd to use NEWID() to create the salt. I'd probably just use CRYPT_GEN_RANDOM(16).