What do you mean by 'appserver'? If by that you mean the process which implements the JMS Topic/Queue, well no, it's the thing that is responding to the queue requests, you need one of these on each machine you wish to host a queue on.
You can however have a client program connect to any number to queues on any number of machines. This is accomplished by setting up queues as usual, and then having the client program look up the queues (possibly on different machines) via different JNDI InitialContexts.
Basically you have an InitialContext for each machine, and then you use that Context to lookup the various queues you want. You then can use these queues as you would a queue on the local machine.