There are two relevant differences between the first two commands.
\textit puts its argument in italics, whereas \emph can be told which form of typographic emphasis to use: italics (the default), slanted roman (cf. the TeXbook!), bold, bold italics, underline (shudder), small caps, etc.
\emph can handle cases of "nested emphasis". For instance, the "words" jkl mno in
\emph{abc def ghi \emph{jkl mno} pqr stu}
will be set in the upright font to differentiate them from their immediate, italicized surroundings.
I wouldn't say that \emph is either more or less "LaTeXy" than \textit. Which one to use depends importantly on what you need to achieve. If the command's argument must be typeset in italics, then \textit is definitely the way to go. This is true, in particular, if there's a chance that the \emph macro has been modified -- perhaps by some LaTeX package that you've loaded -- to render its argument in, say, small caps.
Clearly, though, \foreign{...} is the most LaTeXy method, as it provides an additional layer of abstraction between the text and the way it ends up being typeset.
If you provide the definition
\newcommand\foreign[1]{\emph{#1}}
you can even handle cases of nested foreign words -- a couple of German words in a passage consisting of French words in a document that's mainly in English?! -- without special effort. And, should you change your mind in the future regarding how "foreign words" ought to be typeset, you needn't mess with the definitions of the lower-level macros \textit and \emph: You can simply redefine the macro \foreign to suit your changed typographic needs.
\textitto\emphso that within nested\emphs the emphasis continues to show up. – A.Ellett May 05 '14 at 04:57Ctrl+F "foreign"on any of those links to find it. – wchargin May 05 '14 at 14:09