Why does BrickLink append a -1 to so many set numbers?
TLG hasn't always been particularly careful about their set numbering, so the community has taken to adding -1 to the end of the set number to handle cases where there may be duplicate set numbers used by TLG. For example, here's what we refer to as 8858-1:

And 8858-2:

As others have pointed out, this also helps to track minor adjustments to sets (re-releases, box differences, inventory adjustments, etc). Bricklink maintains a list of sets that are similar and have the same official set number but which are assigned unique suffixes for various reasons.