  We prove that the existence of a Haantjes structure is a necessary and
sufficient condition for a Hamiltonian system to be integrable in the
Liouville-Arnold sense. This structure, expressed in terms of suitable
operators whose Haantjes torsion vanishes, encodes the main features of the
notion of integrability, and in particular, under certain hypotheses, allows to
solve the problem of determining separation of variables for a given system in
an algorithmic way.
  As an application of the theory, we prove theorems ensuring the existence of
a large class of completely integrable systems in the Euclidean plane,
constructed starting from a prescribed Haantjes structure. At the same time, we
also show that some of the most classical examples of Hamiltonian systems in n
dimensions, as for instance the Gantmacher and St\"ackel classes, all possess a
natural Haantjes structure.
