Worth mentioning PayPal have lots of options:
PayPal Standard Payments, which is what most people consider "PayPal" has a very basic subscription system, where either party can cancel the subscription but neither party can modify it. Also it is quite complicated to programmatically cancel the Subscription.
PayPal Express checkout is similar to above but has some basic API allowing software to automatically cancel payments for example.
PayPal Adaptive Payments which is a newer set of APIs allows PreApproval billing this is probably PayPal most flexible system, it will allow you to specify dates/periods to bill and users can be asked to accept new billing agreements etc.
Finally their is PayPal pro which is much more akin to a normal payment gateway.
Which one you choose to use has a massive difference to what you can and can't do, obviously the more flexibility of Adaptive for example comes at the cost of requiring a developer to help implement it correctly. For more information (especially if you are a developer check out x.com its PayPal developer network) as it's not just a case of listening to an IPN as has been suggested, at least not if you want to trigger the IPN in the first place.