Set operations are useful for combining (or separating) groups of things you are interested (or not interested) in operating upon.
Consider use-case: What friends of mine are online now? (set-intersection of lwho and your private list of friends)
union of (a b c d) (c e f g) -> (a b c d e f g)
intersection of (a b c d) (c e f g) -> (c)
Often you'll see mushcode like setunion(%va,) or similar. What this is doing is saying "perform a simple (lexicographical) sort on the elements of %va, remove any duplicates, and return it."