In generative syntax, checking theory is a notion in the Minimalist Program.
[TP John T [vP tJohn likes Mary]
In the example, movement of John to spec,T deletes the uninterpretable phi-features of likes; the phi-features of likes are checked by John.
Checking theory attempts to link two apparent 'imperfections' of human language: the existence of LF-uninterpretable features in lexical items, and movement. Movement of an element A with feature F to the checking domain of an element B with a matching (uninterpretable) feature F', deletes the uninterpretable feature F' in B. If F in A is uninterpretable, F is also deleted.
Chomsky (1995) argues that under checking theory, the existence of movement can be understood as the way in which the computational system tries to satisfy the interface requirement of full interpretation: movement is needed to get rid of uninterpretable features.
Chomsky (1998, 1999) takes a different view on the relation between feature checking and movement; there, movement is supposed to exist independently, for functional reasons, and feature checking is considered to be one of the mechanisms that can implement movement.