-- is used to separate command line arguments from options.

Consider the following command:

ls -l

This will list the current directory lengthily. If you wanted to list the contents of a directory named -l, you would need to execute:

ls -- -l

Or to lengthily list the contents of a directory named -l, one would use:

ls -l -- -l