FBI agent Joe Merriweather (Jeffery Dean Morgan) recruits his old friend Dr. John Clancy (Anthony Hopkins) to track a serial killer, later revealed to be Charles Ambrose (Colin Farrell) using his psychic powers.
Ambrose has been targeting people that will become terminally ill, sparing them untold suffering as he sees it. He is a psychic like Clancy, and perhaps even more powerful, thus allowing him to stay one step ahead.
Ambrose manipulates Merriweather and his team, leading them to an unrelated killer. Merriweather is shot by the killer, and later confides in John that he has stage 4 cancer and had months to live. Merriweather dies of his wounds soon after.
Ambrose and Clancy's final meeting is on a subway. Ambrose reveals that he himself is dying and wants Clancy to kill him and become his successor; killing those who will die painfully without their intervention. Ambrose tells Clancy he will kill Katherine Cowles (Abbie Cornish) to force Clancy's hand, but Clancy sees another path, and is able to kill Ambrose without having Cowles be harmed.
Clancy meets with his ex-wife and his darkest secret is revealed; he mercy killed his daughter Emma as she was dying of cancer. Ambrose knew this, and that is why he pursued Clancy to be his successor. However, though Clancy killed Emma out of an act of love, it has haunted him since, and he realized during the investigation that it was not his decision to make. That is why he refused Ambrose's offer and ultimately stopped him.
Thanks Tim (Spectre)!