$NP$ is the class of problems that, roughly speaking, you can solve by guessing an $y$ of polynomial size (with some magic to guarantee that you guess "right") and then doing a polynomial computation involving $y$ and the original input.
$NP^{NP}$ is the class of problems solvable in this way, if you have access to an oracle for $NP$. After guessing $y$, you're not just allowed to do some polynomial computation, you're also allowed (within this calculation) to solve problems from $NP$ (through an oracle, so in constant time).
The classical $NP$-complete problem of boolean satisfiability is to compute $\exists_x R(x)$ where $R$ is some boolean formula (and $x$ is a shorthand for $x_1,\ldots,x_n$). Its $NP^{NP}$-complete analogue is to compute $\exists_x \forall_y R(x)$.
A slightly more intuitive $NP^{NP}$-complete problem is that of formula minimization: given a formula, can you find a formula of length $\leq k$ that expresses the same (boolean) function?
$NP^{NP}$ is also known as $\Sigma_2 P$, and you will be able to find more info by searching for "polynomial hierarchy" (see, e.g., Wikipedia's article).