MSMQ is, IMHO, pretty horrible, it's a generation old now and is based around COM which is tricky to administer and a nightmare to troubleshoot. I would avoid it if I were you. However WCF provides a netMsmqBinding that uses MSMQ to provide messaging semantics so this is probably worth a look. (I haven't used it but it looks like it abstracts away the pain of COM).
Service Broker is actually really good and quite simple, but is only really appropriate if at least one of the ends of your communication is a SQL Server database; you can use it as a pure transport mechanism but then you're adding a dependency that probably isn't worth it.
Other alternatives for on-premise solutions; you could look at using Windows Workflow, or see if there are any messaging services being built on top of Server App Fabric.