NHamcrest is a C# port of Hamcrest, a popular matching library. I recently added support for Assert.Throws:
[Test]
public void Throws()
{
Assert.That(() => { throw new ArgumentNullException(); },
Throws.An<ArgumentNullException>());
// with a predicate
Assert.That(() =>
{
throw new ArgumentNullException("message", new Exception());
}, Throws.An<ArgumentNullException>()
.With(e => e.Message == "message" && e.InnerException.GetType() == typeof(Exception)));
}