I'll take a shot at this one.
1st) Here is a site with sample agreements - http://bit.ly/eRgnCJ . Reviewing several of these will give you a good idea what is reasonable and customary regarding what is included in your typical software maintenance and support agreement.
2) Do some research in your specific space to ensure you are offering comparable services to your competitors. You can usually get a pretty good idea what they are charging just by asking potential customers - but be sure you are talking to a reliable source.
3) Evaluate the information you've gathered from the two steps above and determine what services you can reasonably provide and what your actual costs are likely to be - then you can set a fair price with a reasonable markup and clearly explain the value proposition to the customer and, most importantly, deliver when required.
4) You may decide to offer more than one level of support at different price points. Evaluating different pricing models may be worth while as well. For example you could charge a flat monthly fee per user instead of a percent of the annual license. Or it could be a combination.
Something to keep in mind - Someone like Oracle who may be charging 22% on a $1M annual contract (an extra $220,000 per year for maintenance) is actually spreading the cost of their support group across many customers. You may want to take into account how your company will look at one, two and three years into the future when determining a price point.
One last point - it's very hard to raise prices if you come in too low. Better, in my opinion, to come in too high and lower them later if necessary.
Hope this was helpful and good luck.