Earl Brooks (Kevin Costner) is an upstanding business owner and family man, recently honored as the Portland, Oregon Chamber of Commerces Man of the Year (the movie itself was filmed in Shreveport, Louisiana). In his secret life, Brooks is a serial killer, encouraged by his id, manifested as a gleefully sadistic alter ego he refers to as "Marshall" (William Hurt) whom only Brooks can see or hear (conversely, no one can hear him talk to Marshall). While he has refrained from killing for the last two years, Brooks feels the urge rising once again and, spurred on by Marshall, murders a couple in their home. Despite killing them before noticing that their curtains are open, Brooks follows his meticulous modus operandi, cleaning up the crime scene (and later cleaning the car he drove to the murder scene and burning his clothes and pictures he took of the victims) before departing. As part of his pathology, he leaves each of the victims' bloody thumbprints on a lampshade.
The next day Brooks attends his weekly meeting of Alcoholics Anonymous, where he vaguely reveals his addiction without elaborating on the nature. Soon afterwards, his daughter Jane (Danielle Panabaker) returns home, having abruptly dropped out of college. She goes on to visit Brooks' business and mentions that she would like get a job with his company so it can "stay in the family." Jane eventually reveals that she's pregnant. Even more worrisome is the appearance of a man who calls himself Mr. Smith (Dane Cook), a peeping tom who photographed Brooks at the scene of the previous day's crime. Blackmailing him, Mr. Smith demands to accompany Mr. Brooks on his next murder.
They both grow nervous over Portland Detective Tracy Atwood (Demi Moore), chief investigator of the "Thumbprint Killer" case. Brooks hacks into Atwood's personal file and financial records; it turns out that she is an heiress worth more than $60,000,000, who could have gone into the family business but became successful in her own chosen profession. Brooks comes to admire Atwood, even to the point of wishing that Jane was more like her. Atwood has many personal problems, including a messy divorce from her sleazy ex-husband, Jesse Vialo (Jason Lewis) and concern over Thornton Meeks (Matt Schulze), a serial killer who has escaped prison with the sole intent of killing her.
One day, Brooks finds detectives outside his house, only to realize they are interested in speaking with his daughter, who left school following the murder of a student. Jane professes innocence during questioning, but Brooks is convinced that his daughter did indeed commit the murder and is afflicted with the same addiction he has. Brooks considers letting her go to jail in the hope that it might "save" her from becoming like him. However, he decides instead to deflect suspicion by travelling to her college campus in disguise and replicating the hatchet murder, making it appear the two murders are the work of a serial killer.
At the same time, Brooks forms a plan to address Smith's blackmail scheme. He decides that the best course of action for his family is that he be murdered, a decision that infuriates Marshall, who would cease to exist if Brooks died.
Brooks takes Smith along with him to infiltrate a high-rise apartment and murder another couple. They are revealed to be Atwood's greedy estranged husband and his divorce attorney (Reiko Aylesworth). The double homicide comes off, but not before an overly excited Smith wets himself on the floor of the apartment.
Atwood requests a search warrant and goes to Smith's apartment, now believing him to be the Thumbprint Killer. She finds it empty, except for an invoice with the furniture's forwarding address.
Despite the attempt of Atwood's partner to bring her in for questioning in the killing of her estranged husband, she gets away. The furniture movers' address planted in Smith's apartment turns out to be Meeks' hideout. In the ensuing gunfight, she wounds both Meeks and his girlfriend. Meeks kills the girlfriend and commits suicide.
Smith pulls a gun on Brooks, who calmly reveals his intention to die at Smith's hands and spare his family the shame of his eventual arrest. The two go to a cemetery that Brooks happens to own. Brooks stands in front of an open grave and beckons Smith to shoot him. Smith squeezes the trigger, but the gun doesn't fire. Brooks reveals that he disabled the gun, just in case he should change his mind. As he faced death, he realized he wanted to live to see his unborn grandchild. Brooks then kills Smith and rolls him into the grave, calmly revealing as he does so that he is not restricted to the thumbprint murders and has changed MOs before.
With Smith's urine providing the only DNA sample of the Thumbprint Killer at the murder scene, Brooks remains beyond suspicion.
He returns to his normal life, anonymously phoning Atwood to find out why she became a cop. She tells him that she chose her career to prove her unloving father wrong.
Later that night, Brooks goes to bed, stopping first in his daughter's bedroom. As he kisses her, she stabs him in the neck with a pair of scissors and watches him bleed to death. Then she puts on his glasses just like she did earlier. Brooks wakes up, shuddering at the nightmare which symbolised the fear he has felt throughout the movie: Jane has begun to enjoy murder, and may one day claim him as a victim.