Cray Fowler (James Spader) is a former public defender running for public office. His father was a prominent lawyer/politician long ago who died in a "hunting accident".
Early in the film, Cray has an affair with one of his servants, Lee Tran (Charlotte Lewis). Unbeknowst to him, someone is videotaping his activity.
One night, Lee shows up injured at his house and tells him that her father Xang Tran videotaped them and was the one who beat her. She explains Xang has been periodically getting her to sleep with rich men so he can videotape and blackmail them. Cray and Lee goes to Xang's house to retrieve the tape. While looking around, Xang shows up and gets into a fight with Cray, knocking him out. When Cray comes to, he finds a bloody knife next to him and Xang's dead body. He assumes that Lee killed him so he takes the bloody knife and leaves just in the nick of time before the cops show up.
Lee gets arrested for her father's murder. Feeling somewhat responsible for everything, Cray decides to defend her, even though this could derail his campaign and even though he hasn't practiced law recently.
During the trial, a photographer in the apartment below Xang claims he witnessed Lee killing him, but his testimony falls apart under cross examination.
Cray ends up finding a gay man who was being photographed that night who saw everything. On the stand, he testifies that the investigating cop is actually the killer. As he's speaking, the cop opens fire in the courtroom, trying to kill him, but before he can, the judge who also carries a gun kills the officer. After this turn of events, Lee is acquitted.
Also, it turns out the cop and the politician running against Cray were acquaintances, so even though Cray's rival had nothing to do with the killing, the association is enough to destroy his popularity and Cray ends up winning the election.
There's also a subplot about some former slaves getting paid for some land purchases, but it turns out that the names of the recipients are all dead and buried, so no money was getting paid out and some wealthy landowners made off like bandits. Cray's father was getting to the bottom of this right before his untimely death.
In the end, it is revealed that Cray's slippery uncle Clifford (Jason Robards) is responsible for everything bad going on. He was involved with the land payment coverup. He arranged for Cray to get videotaped just to keep him in line. He got the cop to kill Xang because he was threatening to expose Clifford. He was out hunting with Cray's father and shot him many years ago. Now that Cray knows the truth, he demands the return of his videotape and pretty much makes it clear that Clifford will no longer have any power over anything.
The movie concludes with two events happening simultaneously: Cray giving his victory speech and Clifford going on another hunting trip where he arranges for the same gun that killed Cray's father to kill himself.