The も softens the request and makes it politer by removing some of the expectation. A more literal translation of 寝てもいいですか would be something like "Is even sleeping okay? Even if I sleep, is that okay?" This implies that you may or may not sleep, but you want to make sure your option is open. 寝てもいいです, giving permission, is the same. You're removing the obligation from the individual. "You may even sleep (, or you may not sleep as you see fit) as you like."
~ ていい is indeed more colloquial. You're being a bit more direct with what your desire 寝ていい? (can I sleep?) or giving permission 寝ていい(よ) - (you can sleep).