The best way of developing on Symbian OS depends on what you already know, your budget and what you want to accomplish.
What's the difference between Symbian C++ and Java ME when developing?
Well, you wouldn't use the same tools, it's not the same runtime, it's not the same language.
Typically, one would use C++ when trying to do something that JavaME cannot do (telephony...) or when the JVM footprint creates a performance problem (startup time...).
JavaME is particularly useful when you plan on porting what you develop to non-Symbian phones (Although JavaME quickly becomes a nightmare when supporting multiple platforms). It is also a good entry point into the mobile industry for the many developers who were only ever trained to develop in Java.
If Java ME can run on Symbian ,why we need Symbian C++?
See above: Although modern JVMs execute bytecode at a rate pretty close to compiled C++, the JVM itself has a considerable footprint and J2ME simply lacks a range of APIs that are accessible in Symbian OS C++
Is there any other way to develop on Symbian? What about Qt and Ovi?
Python is popular, There is a Ruby runtime, you can use the Web Runtime... You can pretty much create your own runtime if you feel like it. Qt is the next big thing because it is close to the hardware, available on other platforms and Nokia is commited to expand its API coverage.
OVI isn't a development environment. It is the Nokia application store where you can upload developed applications (written in Qt, C++, Java, JavaScript...) so Nokia handset users can download them on their phones.
What way you will choose if you are going to develop on Symbian?
We're now back to "it depends".
If you're looking for good guides, I suggest looking at the Symbian Press books, particularly the Java, Python and Quick Recipes books.