A Monitor is managed, and more lightweight – but is restricted to your AppDomain. A Mutex can be named, and can span processes (allowing some simple IPC scenarios between applications), and can be used in code that wants a wait-handle).
For most simple scenarios, Monitor (via lock) is fine.