Anyway, VisualVM is an absolutely GREAT tool to monitor Java apps. You are able to see all threads (with possible deadlocks), memory state (heap and stack), profiling information on CPU and memory utilization, etc. VisualVM has pluggable architecture and you can find many useful addins to it including JConsole plugins. This way you will be able to use only on tool and get rid of JConsole (which is a great tool too).
More details and full-blown tutorial can be found here: http://www.taranfx.com/blog/?p=930
More advanced topics are described here: http://blog.grovehillsoftware.com/2009/05/visualvm-and-cutting-method-calls-by.html