Cultivate their professional growth, give them opportunities to learn and grow and expand their skillset. Allow them to work across realms, for example let a backend develop fix something on the mobile codebase. Novelty works as a quick fix and as a pick me up.
I manage a team of 8 engineers and recently we've started doing friday potlucks where each person after lunch picks a ticket from the backlog. Tiny things that need to get done and we just never do kind of stuff. The idea is they get a breather from a large, mentally taxing ticket and head off into the weekend with a win under their belt and their load off their mind. It's not like going home on friday with your huge ticket weighing you down.
Try it out, everybody on my team loves it.
Are you doing agile software development?
Give everyone on the team a chance to provide input and make suggestions. Everyone has input. It may be good, bad or just a moot point but giving people the chance to give input is a great start.
Is it all work and no play? Team building events outside work are always good for the team. Shows appreciation and gets everyone out of the work work work mentality...
Is the pay and benefits worth it for what people are doing?
Project possible in terms of timeline? Scope? Is there a plan?
How is the team morale? Why is it like that?