-- is used to separate command line arguments from options.
Consider the following command:
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