I will try to condense the various bits of information scattered throughout CMOS. First of all, there are three lengths of what are all more or less dashes: hyphen (-), en dash (–), and em dash (—). I frame it this way because the work they do is roughly related to their length (though I don’t think CMOS puts it this way outright).
The hyphen connects two things that are intimately related, usually words that function together as a single concept or work together as a joint modifier (e.g., tie-in, toll-free call, two-thirds).
The en dash (U+2013) connects things that are related to each other by distance, as in the May–September issue of a magazine; it’s not a May-September issue, because June, July, and August are also ostensibly included in this range. And in fact en dashes specify any kind of range, which is why they properly appear in indexes when a range of pages is cited (e.g., 147–48). En dashes are also used to connect a prefix to a proper open compound: for example, pre–World War II. In that example, “pre” is connected to the open compound “World War II” and therefore has to do a little extra work (to bridge the space between the two words it modifies—space that cannot be besmirched by hyphens because “World War II” is a proper noun). Now, that is a rather fussy use of the en dash that many people ignore, preferring the hyphen.
The em (U+2014) dash has several uses. It allows, in a manner similar to parentheses, an additional thought to be added within a sentence by sort of breaking away from that sentence—as I’ve done here. Its use or misuse for this purpose is a matter of taste, and subject to the effect on the writer’s or reader’s “ear.” Em dashes also substitute for something missing. For example, in a bibliographic list, rather than repeating the same author over and over again, three consecutive em dashes (also known as a 3-em dash) stand in for the author’s name. In interrupted speech, one or two em dashes may be used: “I wasn’t trying to imply——” “Then just what were you trying to do?” Also, the em dash may serve as a sort of bullet points (e.g. in to-do lists).