The difference between GRANT and WITH GRANT options is very easy. For the GRANT, the username can’t GRANT the same permission to other users. On the other hand, in the case OF WITH GRANT, the UserId will be able to give the permission after receiving requests from other users.
Syntax for GRANT and WITH GRANT:
GRANT: USE model; GRANT VIEW ANY DATABASE TO UserId; GO WITH GRANT: USE model; GRANT VIEW ANY DATABASE TO UserId WITH GRANT OPTION; GO