An NP problem is a programming problem that can only be solved by the theoretical nondeterministic Turing machine (NP stands for Nondeterministic Polynomial). An NP-Complete problem has the property that if you can find a polynomial running time solution to this problem than you can find a polynomial solution to all other NP problems as well. Unfortunately, that works both ways, if you prove that there is no polynomial solution to the problem than all other NP problems don't have a polynomial runtime as well.
For more information, look here.
Hope This Helps,
Update: D'oh! Beaten by MeowChow...