Grammatically both are correct, but their meanings are somewhat different. When you say that someone is a teacher of English what you mean is that the subject the individual teaches is English. The sentence, `He is an English teacher’ is rather ambiguous. It could mean that the man teaches English. It could also mean that the teacher is English — in other words, the teacher is an Englishman.