I don't think I was ever taught a clear-cut rule, and as a non-native speaker, I am probably spoiled to some extent by the usage of dashes in other languages.
That being said, following nothing but my intuition I would use: a semicolon when the sentences express related, yet independent (especially grammatically independent) thoughts; they could well stand on their own, separated by a period.
a dash when the second sentence backs up the first one, nails it down to something, restates or amplifies it, provides reasons or examples, or when the second sentence could not stand on its own "as is" for grammatical reasons.
I will try to demonstrate my point by rewording the notorious examples from
The Oatmeal accordingly.
My aunt had hairy knuckles; she loved to wash and comb them.
My aunt had hairy knuckles — she suffered from hirsutism.
When dinosaurs agree on something, they'll often high-five one another; dinosaurs are all about high-fives.
When dinosaurs agree on something, they'll often high-five one another — they cannot talk and have to resort to gestures.
I gnaw on old car tires; it strengthens my jaw
so I'll be better conditioned for bear combat.
I gnaw on old car tires — to strengthen my jaw
so I'll be better conditioned for bear combat.
Again, this is just my two cents, and I'm only putting them in because the other answers so far seem to miss the point of your question by focusing on non-sentential relations and sometimes not even mentioning semicolons at all.
I don't know whether my answer comes close to being correct or not, but I hope it will at least serve as a turning point for getting the discussion back on topic.
english.stackexchange.com/users/300/RegDwigнt
Semicolon is used to join sentences that can stand alone, but are joined to emphasize their relationship.
En dashes are used to indicate periods of time or other numerical ranges.
Hyphens are used to combine open compounds.
Em dashes are used to disrupt the flow of a sentence and bring emphasis to the coming point.
It is a more informal and stronger version of the colon.
It can also act as a stronger version of the comma.
english.stackexchange.com/users/12/Eruditass
Typically, if I'm connecting two closely related sentences, I use a semicolon; I use dashes in instances where commas would also be acceptable—usually where commas would be confusing—or where parentheses would also be acceptable.
english.stackexchange.com/users/88/Isaac
Firstly, you should be aware that there are two different kinds of dashes: the en dash and the em dash.
The em dash (—; historically, an em is precisely the width of the letter "M", but now defined by the height of the font) is generally used to add a passage into the middle or end of a sentence.
This is similar to using parenthesis, but should be read without adding a pause.
Moreover, the em dash in fact interrupts the sentence, so no pause should be used at all; an interruption should be emphasized.
This dash is also often used as a de facto interruption; for example in dialog when the speaker for some reason cannot continue.
In use, the em dash is not surrounded by spaces.
This is done—like this—because it otherwise uses excessive spacing.
Some publishers or style guidelines may instead prefer the narrower en dash (–; an en half the width of an em).
This character is usually – as in this example – surrounded by spaces.
Suggestions on the use of semicolons can be found as answers to this question .
english.stackexchange.com/users/83/Paul Lammertsma
In Comma Sense ( Richard Lederer and John Shore — ISBN 0-312-34255-1)
it's reported that the dash is used: to set off a though or explanatory remark with a sentence:
If I remember well — bear in mind I have been on New York City 5 years ago — Central Park is close to Fifth Avenue. to introduce an appositive: When I frequented the ITIS — the secondary school on Cantore Street — I was still a teenager.
to signify a sudden change in thought:
We are going to — what's that burning smell? before the citation of an author or source of a quotation.
In the other cases, a different punctation should be used.
english.stackexchange.com/users/252/kiamlaluno
Here is what I think: Semicolon is
a mood-switcher It switches your "learning mood" to "exciting mood" and vice versa.
When dinosaurs agree on something, they often high-five one another; dinosaurs are all about high-fives.
Godzilla is a misunderstood creature; beneath his raging desire to set people on fire & eat them lies a gentle giant who just wants to cuddle Dash is an explainer It further explains a concept before it.
When dinosaurs agree on something, they'll often high-five one another — they cannot talk and have to resort to gestures.
Godzilla is a misunderstood creature — beneath his raging desire to set people on fire & eat them lies a gentle giant who just wants to cuddle
This answer is inspired by RegDwigнt's answer .
english.stackexchange.com/users/80007/Ooker
When you want to connect two closely related sentences, you can use a semicolon or a dash. (You can also use a dash for other kinds of non-sentential relations). How would you choose whether to use a semicolon or dash?
Should I use a semicolon or a dash to connect two closely related sentences?
english.stackexchange.com
<punctuation><semicolon><dashes>
english.stackexchange.com/questions/114
english.stackexchange.com/users/39/nohat
There does not appear to be a clear-cut rule, but it is generally suggested that semi-colons can be used to connect two related but independent thoughts whilst a dash can be used to interrupt a sentence or connect an idea which could not function as a sentence on its own. Dashes can also be used where commas may be confusing. Use a semicolon to express related, yet independent thoughts, and dashes when inserting an extra element like in parentheses.
There does not appear to be a clear-cut rule, but it is generally suggested that semi-colons can be used to connect two related but independent thoughts whilst a dash can be used to interrupt a sentence or connect an idea which could not function as a sentence on its own. Dashes can also be used where commas may be confusing. A semicolon is used to join sentences that can stand alone, but are joined to emphasise their relationship.  Hyphens are used to combine open compounds or to set off a though or explanatory remark with a sentence, or indicate periods of time.
A semicolon is used to join sentences that can stand alone, but are joined to emphasize their close relationship. Em dashes are used to disrupt the flow of a sentence (in a similar way to the use of commas or parentheses) and bring emphasis to the coming point. It is generally considered that semicolons are use to join together two independent but related thoughts. On the other hand, dashes, are used to joint two sentences to provide additional information to the first one.
Use a semicolon when the sentences express related, yet independent (especially grammatically independent) thoughts, i.e. they could well stand on their own, separated by a period.  Dashes are used like parentheses.
A semicolon is used to join sentences that can stand alone, but are joined to emphasise their relationship.   Hyphens are used to combine open compounds or to set off a though or explanatory remark with a sentence, or indicate periods of time.
Semicolons are generally used to express related yet grammatically independent thoughts. Dashes are used to provide additional information to another sentence or interrupt the flow of the sentence.