Confused, are languages like python, ruby single threaded? unlike say java? (for web apps)
The short answer is yes, they are single threaded.
The long answer is it depends.
JRuby is multithreaded and can be run in tomcat like other java code.  MRI (default ruby) and Python both have a GIL (Global Interpreter Lock) and are thus single threaded.  
The way it works for web servers is further complicated by the number of available server configurations.  For most ruby applications there are (at least) two levels of servers, a proxy/static file server like nginx and then the ruby app server.  
Nginx does not use threads like apache or tomcat, it uses non-blocking events (and I think forked worker processes).  This allows it to deal with higher levels of concurrency than would be allowed with the overhead and scheduling inefficiencies of native threads. 
The various ruby apps servers also work in different ways to get high throughput and concurrency without threads.  Thin uses libev and the asynchronous evented model like Nginx.  Mongrel uses a round-robin pool of worker processes.  Unicorn uses native Unix IPC (select on a socket) to load balance to a pool of forked processes through one master proxy socket.
Threads are only one way to address concurrency.  Multiple processes and evented models are a different approach that ties in well with the Unix base.  This is fundamentally different from the way Java treats the world.
I was reading how Clojure is 'cool' because of its syntax + it runs on the JVM so it is multithreaded etc. etc.
Are languages like ruby and python single threaded in nature then? (when running as a web app).
What are the underlying differences between python/ruby and say java running on tomcat?
Doesn't the web server have a pool of threads to work with in all cases?