What is the concensus on when to use one of these tools adversed to the other? I find Subsonic very useful in terms of getting things done quickly, but on large projects it
Again slightly off-topic, but I'll second Castle ActiveRecord - rather than using the database as your model (Subsonic approach) or spending hours in XML spaghetti (NHibernate approach) you simply place attributes on your model classes.
You can even get ActiveRecord to generate the database schema for you.
We've used this approach on quite a few projects now and the benefits are as follows: