There are four classes of bugs:
- Showstopper - The bug prevents normal usage of primary program features, or causes any data loss
- Critical - Prevents normal usage of any requirement, and there is no workaround
- Non-critical - Prevents normal usage of a requirement but there is a workaround
- Superficial - Does not affect program operation (something is mis-spelled)
You should fix show-stoppers and critical bugs on your dime. Regarding your question as to what counts as your dime, you know your effective error rate. This should be figured into the price at the beginning of the project. Otherwise you are effectively working for free for a portion of the time. Accurate estimates and the ability to estimate how long it will take to develop a project and meet the requirements includes rigorous defect rate analysis and incorporation of your capability into the estimate. Debugging and testing are normal development processes, you don't need to think of debugging as a separate task that should be billed (or not) separately from development, it's part of development.
Non-critical bugs are a gray area. Depending on the customer and contract a valid choice might be to defer fixing it as long as the program meets all requirements given the workaround. But it's still a bug, it isn't intended functionality, and it affects a requirement, so in general I'd say fix them on your dime, but you don't need to go into 24/7 mode trying to get it fixed.
Spelling errors and other superficial bugs are something you should fix in the next release if the customer buys from you again. Otherwise, be sure your contract includes language that expresses such errors will be recorded and fixed in future updates, but are not part of the support contract.
At the end of the day, though, you need to include specific statements regarding your maintenance obligations in the contract.
Often a program written to spec will indicate what types of bugs will be fixed, and for how long after the software is delivered such support will be continued. If a bug is found after the first year of operation then it's likely to be superficial or non critical. So many maintenance obligations end a year after the final delivery.
It's really a contract issue, and the fact that you're asking means your contract isn't well defined.