Depende de la plataforma
Android - JAVA, C # (a través de MonoDroid)
IPhone - Objetivo C, C # (a través de MonoTouch)
Windows Phone - C # (Silverlight)
Meego - C ++ (QT)
Symbian - C ++, JAVA
Creo que Symbian será descartado por la mayoría de las compañías. Los teléfonos inteligentes son el futuro. Y para cada tipo de sistema operativo de teléfonos inteligentes, C # / mono estará disponible (tiene que pagar extra, pero la usabilidad lo vale) junto con el idioma nativo de la plataforma. Entonces, puedes ir por C #.
Es posible que no se logre la verdadera independencia de la plataforma, pero si usa C # en todas partes, podrá usar las mismas bibliotecas centrales y ajustar la interfaz de usuario para la plataforma.
Pero para teléfonos de bajo costo, C # no funcionará. Tienes que ir por JAVA.