In the near future, when organ failure has become an epidemic, biotech company GeneCo begins an organ financing program. If a patient does not pay on the organ they have received, a repo man will take the organ from their body.
The head of GeneCo, Rotti Largo (Paul Sorvino), is an evil man who forces Nathan (Anthony Head) to work for him as an organ repossession man in exchange for his freedom after Rotti's former lover, Marni (Sarah Power) leaves him to marry Nathan. Marni contracts a disease while pregnant and when Nathan attempts to save her life Rotti switches the antidote with poison, killing Marni. Nathan manages to save the baby, Shilo (Alexa PenaVega), and tells her she inherited her mother's condition so she must stay in her room at all times. Shilo believes her father is a doctor and is unaware of his work as a repo man.
Shilo sneaks out of the house and into her mother's tomb and, after seeing a pretty bug she wanted to catch outside, goes into the graveyard. While hiding from the spotlights meant to find grave robbers she meets Graverobber (Terrance Zdunich), who calls attention to them as he is extracting Zydrate, an illegal street painkiller. Graverobber uses the body he has dug up to burst through a wall where he finds piles of corpses. As Shilo is grabbed by the guards, Rotti sees her through the graveyard cameras and tells them to let her go. Shilo's blood pressure monitor goes off and she passes out, waking in her bed with her father at her side and remembering the corpses but being told by her father she didn't see anything.
After the graveyard encounter, Rotti is determined to have Shilo inherit GeneCo. Although Rotti has three children, Luigi Largo, Pavi Largo, and Amber Sweet (Bill Moseley, Nivek Ogre, Paris Hilton), he does not believe any of them are fit to inherit his business. The Largo children are unaware of this and bicker over who Rotti will give his business to. Rotti contacts Shilo, telling her he has the antidote for her condition, and asks her to meet up with him. After joining Rotti at a GeneCo celebration, Shilo gets nervous and wants to leave before Nathan discovers she is gone. Graverobber finds her in a tent and helps her escape back home, running into some Zydrate addicts, including Amber, in the process. Shilo then discovers that GeneCo plans to take back the eyes of Blind Mag (Sarah Brightman), GeneCo's opera singing spokesperson, because she has decided to terminate her contract with them.
Following the celebraton, Rotti calls Nathan in for a special repossession assignment. Rotti tells Nathan to take Blind Mag's eyes. Nathan refuses because Mag was Marni's best friend and therefore has to run from GeneCo assassins as they try to kill him. Meanwhile, Mag, having seen Shilo at the celebration, arrives at Shilo and Nathan's home and convinces Shilo to let her in. Mag tells Shilo she is her godmother and Nathan told her Shilo had died with Marni before Nathan arrives back home and forces her to leave.
Rotti contacts Shilo once again, asking her to join him at the opera for Blind Mag's final performance. Shilo leaves and Nathan heads to the opera to look for her. As Mag takes the stage she descends from above on cords and as she finishes her performance she gouges out her eyes, ruining them so that Rotti can't take them back. Rotti then cuts Mag's cords, dropping her onto a fence and impaling her. Shilo is tricked into trapping the repo man, who she still does not know is her father, into a room and hitting him over the head. After being hit Nathan's mask falls off and Shilo realizes he and the repo man are the same person. Once on the stage, Rotti, who is very sick and now near death, gives Shilo a gun. He tells her that her father has been the one making her sick, she doesn't really have a disease, and that if she kills him he will leave her GeneCo. Shilo refuses and Rotti uses his final dying breaths to shoot Nathan. Shilo and Nathan say goodbye and tell each other how much they care for one another and Shilo leaves, free at last to live her life.
In the end Graverobber says Shilo left and Amber became the new GeneCo CEO.