I think state-by-state primaries are the best for our country. It allows a schedule for candidates, so they are able to go to each of the states, because each is important at some point. It stretches out the process so candidates don't have to worry about being everywhere at once. Campaigns are also started later, because candidates can focus on certain areas at certain times. With a national primary, candidacies would be announced much sooner, and campaigns would start much sooner because candidates would work very hard for several months to make sure they adequately woo all the individual states.
I think it should be randomized where each state falls in the process. Excitement would move around the country, and the focus wouldn't just be in Iowa at the beginning of each primary process. Many different states would have the priviledge of going first.
Also, I think we have a great mix of national primary and state-by-state primaries, because of Super Tuesday. Because half the country votes on one day for their candidates and the rest are spread out, I think we get a happy medium between the two theories.