> ¿Puedo publicarla y distribuirla libremente?
Si la aplicación es GPL sí, *solo* cuando la *distribuyas* debes dejar disponible el código fuente (con la distribución misma, o a través de un sitio web, etc).
Si es otra licencia, debes leer sus condiciones.
> ¿Pueden otras personas colaborar para mejorar mi aplicación?
Eso escapa un poco a la licencia. La licencia permite colaborar, que colaboren, es otro tema. El efecto de "colaboración" se genera cuando logras captar la necesidad y el interés de los demás, es decir, tu desarrollo es lo suficientemente "general" para que otros puedan aplicarlo en otros contextos y les sea útil. Si tu desarrollo es muy específico a tu contexto, y solo te sirve a ti, la gente colaborará *solo* si les interesa que a ti te funcione (comunidad de usuarios de un servicio, etc).
Pero hay un detalle *técnico* (y siempre lo recalco): tu sistema tiene que estar sumamente bien documentado, de lo contrario, nadie lo entenderá (o se hará costoso) y aunque quieran, no podrán colaborar.
> ¿Que debo tener en cuenta? o ¿Cuáles son las limitaciones que tengo?
Sobre todo, lee la licencia, y estudia como ha sido el accionar de los proyectos "libres" serios (estudia el caso de las distribuciones GNU/Linux comerciales).
Limitaciones, a grandes rasgos, no puedes cerrar el código y decir que es tuyo, restringiendo los fuentes. Técnicamente, debes documentar todos los cambios que haces a partir del código original para que los usuarios entiendan los cambios que has hecho. De nada sirve *toquetear* todo el código a diestra y siniestra, sin documentarlo.
Algunos detalles, según mi punto de vista y experiencia:
1) Solo estás obligado a entregar el código si hay distribución de la aplicación, no si se usa como un servicio (si lees la licencia, habla de "distribución del software", nada más). Esto puede cambiar con la nueva versión de la GPL.
2) Hay personas que distribuyen sus proyectos de forma GPL, pero luego quieren ponerle restricciones a los cambios de código diciendo que los logos no pueden cambiar, ni una línea visible con el nombre del autor que se ve en toda la aplicación, etc. Y esto es una restricción que viola la licencia. Lo que si deberías dejar, por un tema de educación y ética, el nombre del autor en los fuentes, o por lo menos decir que deriva de tal proyecto, para luego agregar tu firma y la lista de cambios que hiciste, etc.
¿De lo contrario, de que libertad de modificación estaríamos hablando?