Knockouts are more exciting and marketable but they don't always tell you who is truly the best team.
At the same time, the format of 4 groups of 4 teams mean that a top side can be crunched out really early in the tournament (like 2007). It's better to have two groups because then you will see the top sides face at least half of the other top nations in the world. You will weed out the "one-match upset teams" from progressing farther in the tournament, resulting in better cricket down the stretch.
For example, Australia won the 2007 World Cup without facing either Pakistan or India, two decent ODI units. We saw Ireland and Bangladesh in the Super 8's and although Bangladesh justified their presence by beating the Saffers, there were still a bunch of empty games. The semifinal line-up
could have been different if India and Pakistan were in the second round, but there's too much chance of them being knocked out at the beginning of the tournament.
I think 7-team groups in the first round are the way to go and then you have to go with knockouts because the tournament would become too long, otherwise. The 2003-format of 7-team groups -> Super Six -> Semis -> Final is probably the best format, though. Australia went unbeaten in that World Cup and played all the top sides bar South Africa. They would've played South Africa, too, if Kenya hadn't earned points on New Zealand's forfeit.
--
In summary, the knock out system requires you to be the better team down the stretch whereas the system used in 2007 doesn't account for teams that take a while to warm up. Larger first-round groups allow the best teams to play the best teams more, to get a better idea of who really is the top side.