Short answer: Self-application might jeopardize termination, but not necessarily. Indeed, avoiding any kind of self-application is a sufficient but not necessary condition for termination.
Long answer (updated after Rob Arthan's and Derek Elkins' remarks): There exist terminating terms that contain self-application: for instance (as you said), $(\lambda x. x) \lambda x.x$ which reduces to to the normal term $\lambda x. x$. So, self-application is not a sufficient condition for non-termination.
Anyway, we can say, roughly speaking, that some kind of self-application is a necessary condition for non-termination. Indeed, simply typed $\lambda$-calculus is a restriction to the untyped $\lambda$-calculus where, in particular, (roughly) any kind self-application is forbidden, and all terms in the simply typed $\lambda$-calculus are strongly normalizing.
Unfortunately, it is not possible (or at least, I am not able) to give a precise definition of the kind of self application that yields non-terminating terms, because the issue is quite technical and not trivial and, as far as I know, in the literature there is no clear result about that. Anyway, it is possible to see what happens in the simply typed $\lambda$-calculus.
Terms of the simply typed $\lambda$-calculus are the "typable" ones i.e. the ones that can be derived in a type system that forbids self-application. According to this type system, a term $tu$ is typable if and only if $t$ is typable with a type of the form $A \to B$, and $u$ is typable with a type of the form $A$. The type system is conceived so that no term $s$ can be typed by both $A \to B$ and $A$, thus the term $ss$ is not typable. In this way, self-application is forbidden in the simply typed $\lambda$-calculus: this is the key-property that allows us to prove that all terms in the simply typed $\lambda$-calculus are strongly normalizing.
But the expressive power of the simply typed $\lambda$-calculus is quite limited. For instance the harmless term $(\lambda x.x) \lambda x .x$ is not typable in such a system. More importantly, self-application is crucial to define recursion and fixpoint combinators, which are required to represent many important computable functions. So, a question naturally arises:
Is it possible to define laxer type systems that allows some harmless (with respect to termination) forms of self-applications?
Yes! Take for instance the system of intersection types, which characterizes all and only the terminating terms. For instance, the self-applying term $(\lambda x.x)\lambda x.x$ is typable with intersection types, but the non-terminating $(\lambda x. xx) \lambda x.xx$ is not.
Roughly, intersection types allows us to discriminate harmless and harmful forms of self-application.
For more details about intersection types, I suggest the reading of this paper (or at least its first part).