Well, I've tried this and have something that works. I don't know if its the official/best way but here it is:
On each application to be monitored the MBeans are created and registered locally. On a central monitoring program (which may or may not be on JBoss) I would have to have an RMIAdaptor for each JBoss instance, which would be able to do anything to any MBean on that instance. By iterating through the RMIAdaptors I can monitor and control any of the MBeans on any of my JBoss instances.
Er, lost the second half of my post there:
you will need JBoss in some form with your applications - JBoss classes provide the connectivity between your applications and monitoring program. This is the case with JDMK ( Suns JMX product ) as well, and probably every distributed management product. As JBoss is very modular you could cut it right down to the JMX kernal and JNDI to provide the management functionality, or maybe just include the right classes and put the right .jar files in the classpath.
Teh cascading agent from the jmx remote package might also ease the work involved in getting a single view into several agents running in different processes