This story about Quicken and MYOB requiring customers to purchase software updates or maintenance in order to receive updates to payroll tax tables embedded in the software go a long way to answering the question.
I appreciate the difficulty that a software developer can have in a saturated market – how do you keep revenue coming in once everyone who needs your software has purchased it? But I have always considered charging for software maintenance a somewhat dubious practice.
Receiving updated software with new features as part of maintenance is fine, as is charging non-maintenance customers a higher price if they do decide to upgrade.