There are legal issues with using Google Maps within J2ME apps. The Google Maps API can only be used from within a browser.
See 10.8 on this page: http://code.google.com/apis/maps/terms.html
Google Maps also has a limit on the number of unique maps you can download per ip address. Usually it would be good enough for any PC-based app. However, on mobile devices many devices will go via a proxy web service such that many devices have the same IP address. Because of that the limit is reached very quickly.
Yahoo Maps has no such restrictions in it's T&Cs and a much higher limit per ip address. They also flag certain ip address as proxy servers so they don't count towards the limits. We've used this commercially.
As for reverse GeoCoding, there is the GeoNames webservice, though I've not personally used it.