It's almost always preferable to lock on a private readonly object.
The difference is that this is generally visible to outside code, which may take a lock on it, i.e. -
var obj = new YourClass();
lock(obj)
{
...
}
...in which case any attempt inside of YourClass to lock (this) would block.