Ramesh Ponnuru has an interesting take:
It has seemed a bit like the 1996 race. McCain is Dole: the old war hero who has run before, who does not enthuse either economic or social conservatives but has a pretty conservative record. Giuliani is Forbes: the socially liberal, economically conservative New York candidate. Huckabee is Buchanan: the social conservative with rhetoric that scares economic conservatives. Romney is Gramm, the movement-oriented candidate with boatloads of money but difficulty connecting with grassroots conservative voters. (I'm not sure where Thompson fits in this scheme.) Romney has gotten further than Gramm, but much of the story is the same. The social-Right candidate takes out the movement candidate, the economic conservative ends up not playing a huge role, and the nomination goes to the old guy whom much of the Right distrusts.
I do wonder who would have won a set of primaries pitting McCain against Romney in a two-man race. (I wonder the same thing about Gramm and Dole.)