To our eyes there is no difference between
<strong>bold</strong>. Likewise there is no difference between
<em>italic</em>. That's to our eyes.
But HTML is a semantic language where the markup and structure lend meaning to the content. To a seach engine or a screen reader, the above have a marked difference from one another. To a search engine,
<em> hint toward importance and emphasis in that order. A screen reader will recognize this, as well, and give a change of voice when parsing over these phrases.
This is not the case with
<b>, which are only visual clues, with no semantic or aural significance. If the author only wishes to bring slight attention to a phrase (such as a name or date) she may opt to use these, rather than bring extra attention that may be misleading to a search engine, or sound like shouting to user of a screen reader. It can parse these with no change of voice. This is important to distinguish when marking up text.
The specialized area that studies the above concerns deals primarily with accessibility and web standards. You'll find reams of content on the subject online, but I highly recommend looking back about 10 or more years and reading the discussions that were taking place at that time. This is where these ideas were cemented into the recommendations that became what we follow today.