In addition to what Glen said, the area most developers want to change is user interface controls, so I would definitely create subclasses of all Windows and Web Form controls and forms. Other than that, you can pretty much wait until you decide you want to enhance a particular MM .NET component before you subclass. Both Windows and Web Forms applications have a Factory object whose methods you can override to instantiate your own subclasses. There's really no need to do it up front since it's a simple override if you ever get to that point.
This is really different than the sort of subclassing you might have done in Visual FoxPro (if that's what your previous tool was). In .NET there are thousands of base classes and it doesn't make sense to create subclasses of all of these (or all of the MM .NET classes for that matter). You could compare subclassing all .NET or MM .NET classes to creating a wrapper function for all VFP functions/procedures...it's not something you'd want to do just because there might be something you want to enhance in the future. In reality, it's VERY easy to change the class you are using in a project to a different specialized subclass by doing a simple search and replace, since all .NET source code is in text files.
Regards,
Kevin McNeish
Eight-Time .NET MVP
VFP and iOS Author, Speaker & Trainer
Oak Leaf Enterprises, Inc.
Chief Architect, MM Framework
http://www.oakleafsd.com