I want to know which is correct .....teacher of English or English teacher.
If you put the accent on the word "teacher", then it means "a teacher from England." If you put the accent on the word "English", then it means "a teacher who teaches English".
Or in another way, if you say "a teacher of English", then it means a teacher who teaches English. If you want to say a teacher who comes from England, then a clearer way would be "a teacher from England."
Very slight difference in meaning here:
"Teacher of English" can refer to anyone who is teaching English, to anyone.
"English Teacher" has the connotation that it is someone who is in the Education system, is paid, and has a class of students to teach to.
Both are grammatically correct, and which one to use will depend on the context.
teacher of English: This makes an explicit reference to the subject. It doesn't matter if the teacher is from England or not, it just cares about the fact that the teacher teaches English.
Examples where teacher of English is used:
English teacher: This can be ambiguous depending on the context because English can relate to nationality or to the subject English. If such an ambiguity is not possible in your context, English teacher is shorter, easier to pronounce and the natural choice of words. It would even sound a little awkward if you, at your own school, should refer to your English teacher as your teacher of English.