I would go for www.Unity3D.com as my prefered platform.
Why? Because its a crossplatform framework, so if you pay for it later, you will also be able to publish to eg. iPhone, iPad, Android, Xbox, Playstation and Wii...
Its a bit "hard" to start up, but as I am informed its currently one as the most chosen platforms for iPhone/iPad 3D game development.
You can do 2D stuff too, but the engine is build up upon 3D from start, including psysics, lightning, shadows and you can build FREE games with the FREE license. All the user needs is either to download and install the game (as usual) OR play it inside a browser (which requires the user to download and install a plugin, just as Flash/Java)
The Unity3Dplayer utilizes the platforms 3D acceleration, so some of the demos are quite nice to watch.
Flash on the otherhand is an easier platform for graphicartist (from at starting point), but its not really designed for 3D yet - and today Steve Jobs aka "God of Apple" still thinks that iPhones/iPads should not be able to run Flash applications inside their iOS. (as it probarbly would let way too many free game pass outside the AppleStore which will lead Apple to less revenue on Apps and also not force the developers to learn how to write native Objective-C)
So I will go for Unity3D