can we develop a j2me application that work in all mobile devices
Normally Java enabled mobiles like Nokia, Samsung, LG and etc supports j2me applications. You can use j2me application on Symbian s40, s60 mobiles. But you can't use different OS like Android, Windows.
I suggest developing j2me application with LWUIT. If you are developing j2me application with LWUIT means you can use that application on Blackberry and Android mobiles also. But you have to change something for these platforms. See this link, LWUIT for Blackberry and Android.
In theory: yes. In practice: no.
You'll have to stick to the least common set of features which probably results in a poor application. Even within the JavaME world only you'll have to struggle with device incompatibilities and bad implementations of JavaME environments. Projects like J2ME Polish try to help here, but still you won't reach every device.
Either choose a subset of devices you're willing to support or be prepared to put extra work in building and maintaining device specific versions of the application.