I'm looking forward to delving into the .NET framework but most mobile applications seem to be developed in Java. I'll most probably be targeting the less pricier phones like Nokia and motorolla not android or iphone OS. Can I do these stuffs in C#?
Depends on the platform-
Android - JAVA, C#(via MonoDroid)
IPhone - Objective C, C#(via MonoTouch)
Windows Phone - C#(Silverlight)
Meego - C++(QT)
Symbian - C++, JAVA
I think Symbian is going to be dropped by most companies. Smart Phones are the future. And for every type of smart phone os, C#/mono will be available (you have to pay extra, but the usability worth it) along with the native platform language. So, you can go for C#.
The true platform independence may not be achieved, but if you use C# everywhere, you will be able to use same core libraries and tweak the UI for the platform.
But for low cost phones, C# will not do. You have to go for JAVA.
Cant specifically tell about Motorolla or Nokia but you need to keep in mind what is the platform these phone's support. You would be better of developing in Java as it is a more popular platform and need not depend only on Windows mobiles. One more thing C# is so shamelessly close to Java that a cross compiler does the trick for Desktop apps may be this applies to mobile apps too.
If you want to develop for Windows Phone 7, C# is perfect (VB.NET is coming soon.) You can leverage any Silverlight or XNA knowledge you have, too. I have no idea whether the platform will succeed, but why not refine your app using a language you know, then port it to other languages once you're confident in your user experience, logic, calculations etc? The emulator is apparently very good, and can be supplemented with accelerometer-emulator and gps-emulator to do everything except making a phone call. (And really, who uses smartphones for making calls?)
I started writing Android apps in Java having prior experience in C#. I found that many fundamental concepts of the language are similar, so it was simply a matter of learning the few differences, especially with the libraries. If you can learn, coding in the other would be very simple (based on my experience).
I would recommend starting with Java. Android is on track to becoming the most popular mobile OS, so you know it will definitely be around for a while. Also, Java is older, so there are countless libraries and tutorials available for you to use and learn from. Once you understand the core concepts of Java, learning C# should be a breeze - and you'll really appreciate some of the neat features (like attributes and LINQ) that C# has to offer.
Disclaimer: I started with C# (primarily for ASP.NET MVC web development) and then learned Java for writing Android apps. I haven't done any mobile programming with C#, so I can't tell you what it's like.