Aside from his breakthrough performance as the blissfully stoned Spicoli in "Fast Times at Ridgemont High," Sean Penn has rarely played goofy guys or shown much in the way of lighthearted likeability. So it's more than a little jarring at first to see him in director Gus Van Sant's "Milk" as the ever-optimistic political activist Harvey Milk, who greets life with a "what, me worry?" smile even when the world gives him little reason to be cheerful.

Milk would become the first openly gay man elected to public office in California (he became a city supervisor in 1977) and "Milk," instead of celebrating that breakthrough, concentrates instead on the years of tireless campaigning that preceded it. Much of the movie's power comes from its message that change doesn't come about just because we wish it to be so, or because one person puts his or her shoulder to the wheel. It's usually a long, slow process that requires uniting various factions of the community, devoting oneself to the cause and, often, making many sacrifices along the way.

Penn expresses Milk's appeal as a charismatic man of the people, yet he also taps into the man's sense of inadequacy that sparked his move into the political arena. "Forty years old, and I haven't done anything that I'm proud of," Milk tells his lover, Scott Smith (James Franco). The two open a camera store in San Francisco's Castro district, only to face scorn and discrimination from the local merchants' association. At the same time, police are raiding gay bars and arresting patrons.

That's what it takes to motivate Milk to run for city supervisor: "Let's let our tax money go to our protection, not our prosecution," Milk declares as he begins his first run at the city supervisor job. Smith is amazed by his boyfriend's new-found inspiration. "I thought you were a Republican," Smith teases. "I'm a businessman," Milk answers.

Van Sant has assembled a superb cast, and each of them creates a bold, memorable character. As Jack, the loose-cannon of a lover who wins Milk away from Smith, Diego Luna is disturbingly clingy/creepy. Emile Hirsch, as a former party boy who becomes one of Milk's most fervent followers, and Joseph Cross, as an organizer who isn't entirely comfortable with his own sexual identity, also give standout performances.

Dustin Lance Black's excellent screenplay gives Milk a great adversary in the form of Dan White (Josh Brolin), a conservative fellow supervisor who publicly denounces "social deviants" but privately seems to have a somewhat conflicted soul. Brolin conveys White's darkness not through grand gestures, but through uneasy silences and the slightly askew way he looks at Milk.

As White and his allies use the "preservation of the American family" as the basis for their anti-gay arguments, we're once again reminded that, although it is set in the past, "Milk" is addressing issues that are still relevant today. And, at the end of the film, it's shocking to realize that many of the battles Milk fought are still being waged by a new generation 30 years later.