You can use watermark for multiple purposes:
1. internally check validity of watermark. watermark is string type value, you can put into watermark digital signature, public crypto-key, or secret combination of bytes converted to Base64 string for example.
2. externally check validity of watermark - your checking software can validate assembly on watermark existance and validate watermark.
3. watermark can contains some of data that can be used internally in your software. Without this data your software can't work properly.
4. Watermark can contain some licensing information.
etc and etc.