How do we distinguish NP-complete problems from other NP problems?
To provide the flip side of 042's answer: it's important to understand that if $P=NP$ then every problem in $NP$ is $NP$-complete (caveat: under the usual poly-time reductions): $NP$-complete simply means 'every problem within $NP$ can be solved in polynomial time with an oracle for this problem'.  But if every problem in $NP$ can be solved in polynomial time&mdash;that is, if $P=NP$&mdash;then the second part of that statement is vacuous.

On the other hand, if $P\neq NP$ then it's known that the problems that are in $NP$ but not in $P$ have a very rich structure - in particular, there have to be 'intermediate' problems that aren't in $P$ but also aren't $NP$-complete, and in fact an infinite number of distinct ones (that is, such that at least one can't be reduced to the other).  For more details on this result (Ladner's Theorem), you might start with Lance Fortnow's notes on the topic.