It is done using machine learning lately and has been oriented for a few years towards two competions: MUC and ACE. The quality of the Coreference Resolution is still fairly poor in the general case, although some special cases, e.g. pronoun resolution have been resolved with good results. There's a number of tools available for Coreference Resolution, including an implementation inside OpenNLP
Tags: