I assume you have choosen your framework by now, but hopefully this post will help others to choose what's right for them!
I've used Moq and was mostly happy with that. The syntax makes tests pretty readable. However Roy Osherove introduced me to FakeItEasy and I find that even more fluent and easy to use than Moq.
You should choose a mocking framework based on your needs. If you are planning to do your system from scratch, you should design it for testing and then one of the free frameworks would be more than sufficient! I can come up with any reason for myself changing to a commercial mocking framework.
I would however like to mention that there are some very important differences between the mocking frameworks. Some are proxy based, like Moq, FakeItEasy and RhinoMocks. Your fakes will be created on the fly, implementing or overriding the classes/interfaces. You have to stick to the rules of inheritance, so you can't just hook into a method that doesn't support overriding or are defined in an interface. They kind of force you to create testable code.
Justmock and Typemock are profiler based, meaning that they can intercept calls to any method to assert that it has been called, changing it's return value etc. If you e.g. have a legacy system or you depend on another commercial system like sharepoint and want to write tests, one of the commercial frameworks might do the trick.. Say you have dependencies to static classes like DateTime.Now, Random or something home grown. These frameworks will make it possible for you to intercept the calls and return your own values! If you are using a proxy based framework, you must design/refactor your code to get past such dependencies (e.g. extract and override).
Good luck!