"Best" platform obviously depends on your app and your business plan.
Java still has the biggest reach, but even so writing portable J2ME apps is a surprisingly rare art. A lot of people in the industry wish they could come up with something to beat Java. Emphasis on wish.
Smartphones nowadays have real browsers and real bandwidth, although other phones can still be pretty limited there. So if you can rely on your users to have nice phones, a web app is probably the best option to weigh against J2ME.
Those two (and WAP) aside, you're looking at slicing your user base to those with the right brand of hardware.
Symbian, Blackberry OS, and Windows Mobile all have a lot of handsets out there, but you kind of have to pick one. Symbian of course covers more than one manufacturer, but there's two main flavours of Symbian plus the touchscreen issue to create fragmentation. Windows Mobile wishes it covered multiple manufacturers, but in practice they're pretty much all HTC. Writing an app in multiple versions obviously is a lot of work. iPhone is currently small but growing [Edit - growing fast. NPD's Q3 figures put Apple as the second biggest-selling smartphone vendor worldwide, after Nokia. Then RIM, Motorola, HTC. Apple outsold Moto and HTC combined].
Device-specific OSes are "better" than Java in the sense that they offer more control of the device. But if your app doesn't need that, then any device with any of them on it will support at least MIDP1, apart from iPhone (so far: Sun claimed to be working on it, but at the time nobody was quite sure whether to believe them and I haven't been following the issue since. Steve Jobs has been quoted saying words to the effect, and I exaggerate only slightly, of "J2ME is the stupidest thing I ever heard of and we'd all be better off without it".)
BREW and i-mode look like narrow options unless you happen to be in their markets, in which case they have good availability.