You are correct that the English "teach" and "give lessons" do not exactly correspond.
On the other hand, if you ask a person what they do for a living, the English speaker might say "I teach" whereas the Dutch person would say "Ik geef les". In that sense (what people might actually say in the real world) "I teach" and "Ik geef les" are reasonable translations of each other.
In any case, the Dutch "lesgeven" means primarily to teach pupils -- usually (but not always) in a classroom setting. There are other Dutch words for other senses of the English "teach". For example:
I teach the dog = Ik leer de hond.