Tienes un cacao... xDD
Antes de todo, ¿que plataformas tienes que soportar?, ¿iphone, Android, Windows Phone, BB, Web?
Una vez sepas en que plataformas quieres tener la aplicación disponible ya es hora de elegir la tecnología, si solo quieres que funcione en iOS, Android y una Web, necesitas saber que uso vas a tener de lo que serian las API's nativas, vease, notificaciones Push, geolocalizacion, Storage.. etc
PhoneGap te permite acceder a través de Javascript a las API's Nativas de cada plataforma, escribiendo el código una vez, sirve para todas ( ojo que esto no es siempre cierto, pero al menos reutilizaras la mayor parte ) además de empaquetar la aplicación como una aplicación nativa de cara al usuario, por lo que es una buena opción a tener en cuenta.
En cuanto a lenguajes, diferencia la parte servidor de la parte cliente, la parte servidor la puedes escribir en cualquier lenguaje que mas te guste, Ruby, PHP, Java, Python... solo tienes que poder hacer unos servicios que respondan a peticiones HTTP y extraigan los datos de cualquier Base de Datos.
En cuanto a la parte cliente, si te decides a hacer la aplicación en Javascript es recomendable usar algún framework MV*, y ahí es donde entra Angular.js como una de las mejores opciones.
Hacer funcionar Angular con PhoneGap es fácil según he leído, pero conviene echarle un vistazo antes de meterse de lleno.
Dart no te lo recomendaría, a pesar de que compile a Javascript, es meterte otra capa mas de abstracción que lo único que va a conseguir es complicarte todavía mas todo el tema.