Both <b> and <i> live on for traditional typographic use that doesn't imply emphasis (or a heading). <i> with a lang attribute (and, optionally, a class to indicate it's a foreign usage), f'rinstance, is the right way to italicize foreign words. And, depending on the text, those italics may be instances of <cite> or <dfn> or some such. You can - and should - pack a lot of useful metadata into HTML tagging; it can be of a lot of help to readers when typographic conventions change (as they always have throughout history).
However, if we're using – as it happens – <strong> and <em> as direct replacements, we do not gain much on the semantic side of things. "italic" is still an abstract concept to express emphasis, by convention expressed in type by a cursive script font and in handwriting by a single underline. (A double underline would be equivalent to bold and a tripple one to small caps. An alternative method used in traditional typesetting to express the same hierarchy is letter spacing by various degrees. There's nothing in HTML saying that <i> shouldn't be rendered using letter-spacing by a browser. In early browsers, it was a regular feature that the related display styles could be set by the user.)
Edit: I strongly advocate the use of semantic tags like <cite> or even <q> (instead of using typographical quotation marks), lang-attributes, etc. This is only about genuine marks of emphasis (as in speech).
Edit 2: I just learned about the "undeprecation" – so read cum grano salis (<– example of a lateral change of context expressed by the use typographical emphasis).