While Nishant Sivakumar has provided an excellent answer, you could also take a look at:
MessageQueue[
^] - the .Net interface to MSMQ.
Take a look at
MessageQueue.BeginReceive[
^] - depending on what you are doing, this might be both more flexible, and easier to implement.
Using MSMQ with WCF is also an option...
Regards
Espen Harlinn