In Santa Monica, California, neighboring Los Angeles, a pair of Mormon missionaries—by-the-book Elder Farrell (Lucas Fleischer), and his soon-to-leave companion, Elder Lozano (Ignacio Serricchio)—proselytize to strangers until they encounter a group of aggressive thugs who intimidate and threaten them. Immediately after this encounter, rival gang members in a car open fire in a drive-by shooting targeting the thugs, leaving the missionaries and other bystanders caught in the crossfire.
The shootout wounds one of the thugs, Carl (Lamont Stephens), who had intimidated Elder Farrell, and kills another thug. After the attack, Elder Lozano saves Carl's life using his shirt, which reveals several tattoos, commenting only about his past that he made a better convert than a missionary. After the hospital releases Carl, he tracks down the missionaries, thanking Lozano for saving his life, who gives him a Book of Mormon.
Later, the missionaries notice an unconscious street preacher—who had previously preached outside their apartment—lying behind a Dumpster. Despite Farrell's hesitation, the Elders bring the man—later identified as Louis (Jo-sei Ikeda)—to rest in their apartment.
Carl, who has been reading the Bible and Book of Mormon, is eager to be baptized and begins taking lessons from the missionaries. While they do so, the missionaries ask their next-door neighbor, Holly (Rachel Emmers), to check on the homeless preacher in their home. Upon their return, the Elders have dinner with Holly and Louis and continue to do so for a few days. In this time, the Elders learn that Louis once was a preacher who lost his congregation due to alcoholism and that Holly—a struggling actress—acted in a few adult movies, her parents back home discovering and cutting off contact with her as a result. Elder Farrell promises that God will never stop loving her regardless of her mistakes.
At a local ward luau, another missionary interviews Carl for baptism, teaching him the story of Ammon, a missionary who teaches a group of people to give up their weapons and bury them deep in the ground, vowing never to use them again. The night before his baptism, Carl buries his weapons in the yard and Elder Lozano baptizes him the following day.
On Sunday, as Carl is being confirmed a member of the Church, his younger brother, Todd, seeks revenge for Carl's friend killed in the shootout. The gang responsible corners Todd and its leader stabs him to death. After church, Carl and his grandmother Mae return home to find the police at their door, who inform them of Todd's death. Carl digs up his weapons and with his fellow gang members hunts down the man responsible. They find him, but Carl—despite his initial desire for vengeance—sympathizes with the man and does not kill him, leaving another gang member to kill the man to Carl's dismay. Distraught, Carl returns to the ocean where he was baptized and throws his gun into the wake.
That night, Elder Lozano wakes up, finding Elder Farrell gone. In his search, Lozano notices Holly's lights on, but no one answers the door, inferring Farrell's sexual indiscretion with Holly. The following morning, Farrell—who returned in the night—begins sobbing at the breakfast table, realizing the consequences of his mistake. After Farrell confesses to the mission president, a replacement missionary comes to the apartment in a van that will take Elder Farrell home; however, just prior to his leaving, Lozano finds Farrell locked in the bathroom unconscious, having slit his wrists in an attempt to commit suicide.
Other missionaries rush Farrell to the hospital, which saves his life, and there Holly repeats Elder Farrell's words to him—that God will love him no matter what mistakes he's made. After his release, Elder Farrell prepares to leave and return home, being drawn to a Lutheran Church "living Nativity" display nearby their apartment. There, he begins crying as he holds the living Nativity scene's baby Jesus.
In a mid-credits scene, Louis preaches a lively sermon to a packed congregation in a meetinghouse he acquired from a widow.Lucas Fleischer as Elder Scott Farrell, a by-the-book LDS missionary
Ignacio Serricchio as Elder Lozano, Farrell's missionary companion and former gang member
Rachel Emmers as Holly, a struggling actor and the missionaries' neighbor
Jo-sei Ikeda as Louis, a homeless street preacher the missionaries take into their home
Lamont Stephens as Carl, a gang member wounded in a drive-by shooting and rescued by the missionaries
Allen Maldonado as Rob
J.J. Boone as Mae, Carl's grandmother
Jeffrey Scott Kelly as Elder Mangum
Adam Conger as Elder Collens
Allison Evans as Doctor
Richard Franklin as Gang Banger
Jennifer Freeman as Jennifer
Brett Granstaff as Elder Stearman
Aaron J. Hartnell as Burn victim
Samantha Klein as Sister Hershey
Rege Lewis as Jordan
Michael May as Elder Myers
Aiyani Mersai as Sister Savea
John Pentecost as President Beecroft
Karyna Shackelford as Mary
Julia Silverman as Nurse
Desean Terry as Banks
Randy Tobin as Beach Guy
Ben Carson composed the film's original score. The CD release of the soundtrack is evenly divided between dialog excerpts and original score (that is, all even-numbered tracks are short dialog excerpts from the film and all odd-numbered tracks are music).
In San Diego, California, a local theater was showing States of Grace. A box office employee told customers that it was "being advertised as a Christian film, but it's really a Mormon film." Some Mormons were outraged and planned a protest, but the film's director, Richard Dutcher called them off, preferring to keep the peace, "turn the other cheek" and let the film speak for itself.