I'd have to say Cloud to be honest, for all the criticisms of him and Final Fantasy VII, the fact remains that it's a powerful, and enduring story. While people slam it, simply the fact that the character has remained in the public imagination for this long says a lot, and honestly he's one of my favorite characters of all time.
As far as Zack Fair goes, he's rather cool himself, but I see him as being an aspect of Cloud's story as much as anything (and the whole telling of Zack's story as a video game only happened because of the immense, enduring popularity of Final Fantasy VII). Despite Zack's own humble beginnings (attitude wise) he's sort of the paragon/epic hero that Cloud needed to become, and eventually did at least twice. Cloud's big problems being mental.
I say at least twice, because overcoming his own mental handicaps/delusions and such was a big part of what made Cloud what he was. Sure he was as awesome as Zack even when he was first introduced but he was sort of delusional. He eventually came to grips about who he was and his own potential. Something made even more "powerful" given the portrayal in Crisis Core and who he eventually became.
The second time is in Advent Children which I guess is canon which is pretty much an abbrieviated repete of the events of Final Fantasy VII. The idea being that Cloud needs to overcome what's in his own mind. He always has the potential to do what is needed, but it isn't until the end when he gets his act together than he goes out and pretty much trashes the guys who were kicking his can for most of the movie. He does it again and goes from being emo biker delivery boy, to the slayer of the reincarnation of this dude that makes his world's equivilent of gods wet their pants in fear.
All of this is VERY stereotypical for a hero (overcoming one's own internal weaknesses) but the story was done well.
In comparison Zack was a lot more two dimensional as fitting his role. If he wasn't then he wouldn't have formed the needed comparison to Cloud (what he was emulating, trying to live up to, and ultimatly winds up surpassing).