To improve morale, a ship needs to spend time on orbit of a planet with at a population of at least 10,000. This should be enough to provide bars, nightclubs, brothels, art galleries, etc.. Note that maintenance facilities are not required. You just need people. While in orbit, the Last Shore Leave date will increase at the rate of 10x actual time.
Random thought: An easy way to distinguish planets would be to have the LSL increase scale with the Services % of a colony, simulating the better and more varied facilities available in a larger colony. Alternatively, it could scale inversely with Agricultural %, representing that hostile environments / frontier planets arn't as hospitable.
Another random thought; Ships could have home ports, which have drastically higher LSL recovery, and/or penalties otherwise. Though the more I think about it, the more trouble it sounds for minor benefit.