It's almost exactly the same as the difference between 教わる and 教える, only in this case English uses different words: "learn" and "teach".
The other answers give the correct grammatical explanation, but I think it helps to see that this is not really a Japanese peculiarity, it's a curious fact about English that in very many cases the same verb is used for the entity receiving something and the entity giving the something.
In Japanese this distinction is shown by referring to 自動詞 ("self-acting" verbs) and 他動詞 ("other-acting" verbs). Many J dictionaries show this after the headword: for example, 新明解国語辞典, highly recommended, gives なおる【自五】 and なおす【他五】. Those single characters may tell you all you need to know.