One obvious way to find out why volunteers are leaving is to ask them - exit interviews or questionnaires might reveal issues that need addressing.
Do people know what they’re letting themselves in for when they volunteer for you? Does the information enquirers receive give them a clear picture of what will be expected of them when they volunteer? Do they receive task descriptions? It may be worth having trial periods for new volunteers, to give them a taste of their roles.
Another area that might be lacking could be the level of supervision volunteers receive. It’s very important that they have adequate feedback and support. On top of this, if they do have concerns it's better if they have a chance to express them, rather than having to bottle them up until it’s too late and they've decided to leave.
When people decide to volunteer they will have certain motivations to do so. They want to feel useful, learn new skills, get out of the house and meet people - the list is endless. If these needs are not met by volunteering with you they'll move on to another organisation or into a different activity altogether. Therefore it makes sense to find out what these motivations are, and how well they are being fulfilled. Remember too that motivations change. You might start to volunteer to improve your CV, but stay because you enjoy the company of the people you work alongside.
Most of us like to feel that we're part of something. If volunteers feel marginalised they are less likely to want to stay with you. Make sure that volunteers are involved in the internal life of the organisation - consulted on decisions that affect them, invited to participate in relevant meetings, and included in any social plans.
Lastly there are specific measures to reward or recognise volunteers - certificates, parties, volunteer events. More important than the big gestures though are the everyday things you do to let volunteers know they are valued. A simple thank you goes a long way.