Chris,
Thanks for your reply. I understand how to do it for one subtype using the method you describe, but it's how to iterate over each subtype, without knowing what those subtypes are e.g if I have 10 feature classes, each with 10 subtypes, I want to automatically create 100 new feature classes - some subtypes may have features in them, some may be empty, but I still need it to produce the feature classes. In the meantime, I have created simple tables which contain the subtypes and written a script which iterates through each subtype - which works fine for this set of data, but it would be useful to know so that if I have a new set of data in the future I did not have to manually create the tables.