Implementations and signing
First thing to do is fix the *many* bugs in the various implementations of J2ME - you can never be sure if something will work the same on all handsets. And roll some of the extra stuff into the core - GPS/accelerometer etc.
Then fix the damn stupid signing/security requirements. Asking the user if they want to do something is fine (and probably a good thing) but have an "always allow this" option. Currently you have to allow an app internet access every time it's run and allow an app to view a web page *every* time it wants to do it.
A decent UI toolkit would be nice but I'd imagine that everyone has either rolled their own or found a 3rd party one by this point.
I guess I live in hope...