In my department, there are 2 styles for a supervisor to supervise student.
In the first one, a supervisor understands his PhD student's research deep enough to provide technical advices such as which algorithms to try, possible solutions for a problem, or even to be able to read and comment on the source code.
In the second one, a supervisor understands his PhD student's research just enough to comment about the feasibility and novelty of the research and its contribution, but does not understand exactly how the research is carried out.
In my opinion, the second style is easier for a supervisor to not only supervise his students but also looks for new ones, as his candidate pool is larger. It also helps a supervisor to have more diversitized research group.
On the other hand, it is harder a supervisor who has deep knowledge about the research of his students to find a new one, as he can only look for those whose research is close to his. But this makes the research of his group more focused.
So, I wonder which one is a common practice, and if a supervisor should have deep understanding, e.g. technical level, about the research of his student.
My field is computer science but answers from other fields are also welcome.