JSP/Java are free too (Tomcat is maintained by the Apache Foundation, and it's released under the same license as the Apache server).
LAMP is just one choice for a free server stack (though it does tend to be the default choice).
The L can be replaced by FreeBSD. The A can be replaced by NginX, or an application server specific to your app (Tomcat for Java/JVM language, YAWS for Erlang, Hunchentoot/Araneida/Anti-Web for Common Lisp, the Racket Server for Racket, HAppS/Hyena for Haskell etc), most of which can also be used to serve vanilla pages. M can be switched out for PostgreSQL or SQLite (if your project is small enough) or MongoDB/[your preferred NoSQL DB].
The P is probably the most flexible component; as I said above, most languages have their own, specialized application server, but even if you want to keep Apache, there is a mod_[language] for most things. Even if there isn't one for the language you'd like, it's pretty simple to hook most of them up through CGI/FastCGI. There's a pretty flexible menu of choices out there, and whatever you build your app in, it's a good bet you'll be able to put a decent stack together for it given enough time and research.
That said, Apache is still the most popular server. Which, if nothing else, means that it's the most battle-tested you can use (certainly more than any commercial alternative), and that more people are likely to know how to use it (which helps with peripheral costs like hosting, or hiring an admin). If you're not looking to host something special, you can safely go with it.