Semicolons and dashes are not interchangeable.
Semicolons are used for basically two purposes:
(a) To join two clauses that could each stand as an independent sentence, but which you want to tie together. A semicolon is an alternative to having two separate sentences, or two sentences connected with a conjunction.
The car was old. The driver was young.
The car was old but the driver was young.
The car was old; the driver was young.
Note that a semicolon should not be used this way if either clause could not stand as a complete sentence. For example, it would be wrong to write, "The car was old; the driver young", because "the driver young" is not a complete sentence. In that case you should use a comma.
(b) To separate members of a list when one or more members have commas within them.
The world was divided into three great blocks: Britain, France, Poland, the United States; Germany, Italy, Japan; Russia.
The semicolons make clear where we are ending each group. (Sure, there are other ways to do it, like placement of conjunctions.)
A dash is used as an alternative to parentheses. Basically, this is a matter of how big a break you want. Parentheses are a big break; dashes are a small break.
As we entered the garden (through the back gate) we saw Sally.
As we entered the garden -- through the back gate -- we saw Sally.
The first example tells the reader that this is a relatively unimportant fact. We could have entered the garden some other way, but it doesn't matter. The second example tells the reader that this is not an essential part of the thought, but it doesn't set it off as much as the parentheses.
I see Lauren Ipsum gives an example where a sentence could be written with either a dash or a semicolon. (Actually in that example I'd use a colon rather than a semicolon, but that's not the main point here.) That's valid, but I think it's a misleading way to think about it. Don't think of a dash as an alternative to a semicolon; think of it as an alternative to parentheses.