'~ㄹ 수 없다' is usually used when you can't do anything because of the situation.
ex.) 지금 비가 와서 나갈 수 없다.(It's raining now and I can't go out.) - 나가다 + ㄹ 할 수 없다
'~지 못하다' is usually used when you can't do anything because you don't have the ability to do something or you're not capable of doing something.
ex.) 나는 피아노를 연주하지 못한다.(I can't play the piano.) - 연주하다 + 지 못하(ㄴ)다
But... Usually, Korean people use two things without distinction.
I hope my answer is helpful. (:D