Aqui explica como a classe funciona
http://www.codeproject.com/Articles/301022/Creating-Custom-Validation-Attribute-in-MVC-3
Aqui tem para CPF
http://www.centralaspnetmvc.com.br/validacao/criar-validacao-customizada-custom-validation-attribute/
Inscrição Esdual creio que não tem como validar, pois em cada estado é diferente, a não ser que vc escreva de uma forma que ele identifique o estado e valide, mas acho que não tem código pronto e vc terá que ir atrás do modelo de cada estado.
Aplicando a validação de CPF, criar para CNPJ vai ser fácil para vc, e tem exemplo de código na internet aos montes, é só ver qual é o melhor para vc.
Eu tenho uma classe pronta em VB.NET de CustomValidation, se de alguma forma lhe ajudar eu lhe passo, é só dar um grito.
Paulo Marcelo Dalbosco