A tester who knows the system very well knows the weak points and knows how the users use the system and will find defects.
Then again a tester who does not know the system will bring a set of fresh eyes and not make the same assumptions an will find defects.
In both cases the probability is that both will find defects that the other will not.
Because developers are human they make mistakes - that is why we have testers - hopefully to find the mistakes so that they can be rectified.
As for the minimum knowledge for a tester (I assume that you are talking knowledge of the system) - that depends, I have seen skilled experienced testers test systems that they have nominal knowledge of and do a good job. I have also seen "experienced" testers test a system which they knew and do a bad job.