Here's a really handy command for when you get Service Broker into a bad state, or just have so much junk in transmission_queue that you want to start over:
ALTER DATABASE foo SET NEW_BROKER
This will end any open conversations with an error and create a new broker in the database. Note, however, that it does not drop any queues or services that you may have defined, although it will empty your queues.
I could be missing some important side effect of this command, of course: I'm still trying to figure this stuff out.