How do I determine what is activating my SQL service broker proc? I have several queues.  One of which has suddenly started acting oddly.  It activates repeatedly while nothing is in it's queue.  I even manually removed old conversations and this thing is still spinning up new spids to pull on the empty queue.  I can see in my logger that it runs the transaction to check the queue,  finds it to be empty, then closes.  A new spid will immediately appear and check the queue again even if nothing has changed.  Another weird thing is that it's only 1 spid at a time.  This Activation is set to allow 10 readers.
Check the queue monitor state in sys.dm_broker_queue_monitors for troubleshooting:

SELECT QUOTENAME(OBJECT_SCHEMA_NAME(queue_id, database_id))  + N'.' + QUOTENAME(OBJECT_NAME(queue_id, database_id)),*
FROM sys.dm_broker_queue_monitors;


Rusanu has a good blog post (Understanding Queue Monitors) that describes the internals of the monitor state machine that seems to be in an unexpected state. Although the troubleshooting section in his post is mostly about the more common problem of activation not occurring rather than visa-versa, you may find the information helpful in researching the cause.

Try toggling the activation status on the queue to see if that fixes things.  Add the code for the activated proc to your question if you need more help.