I've talked with a variety of people about this subject, so I'll tell you what they've told me.
Don't give them free support. If you do this, they'll continually want more and more. At some point, you'll have to stop it and they'll likely be mad at you for it.
Since you don't know how many hours you'd be supporting them, start at an hourly rate. If they don't need you much, you get paid for only what time you spend. This is about a fair to both sides as possible. You don't know when they'll be calling you, but you also won't feel obligated to give them work if they over-pay you, such as with a set fee service contract. You'll still likely want a contract, but something fairly flexible.
If you are going to be putting in a significant amount of time each month or week, set up a contract so that you both know approximately how much time you both expect for you to be working on this project, but leave some room for extra work as well as lack of work. This all should be based on historical information, known upcoming functionality they want, or something that can otherwise be fairly tangibly decided.
Set up a service contract with how much specific time you are going to spend and how much they pay you for it. This should include a minimum of payment for the contract as well as how much they need to pay when the inevitable "something came up" and they need you for more time than expected. You may also need to provide a clause for them not needing you as much, however this service contract should only really be considered if a pattern is well established for your working hours. Generally speaking, if you don't know +95% of the time how many hours a month you're working on this project for them, you shouldn't be doing a service contract.
If you are regularly working on their project for 40 hours every week, you may want to consider having them hire you on full time. This would save you the time and effort doing accounting for your costs, income, etc. It would also save you the cost of replacing old equipment and having to decide how your electricity, rent, and other things are handled on your taxes, if that's part of your country's tax code like it is in the USA.
Alternately, you may also want to consider hiring someone yourself, so this person can work on the project while you work on some other stuff as well. It may get to the point where they want you to put in 50-60 hours a week or more, which would definitely require another person. At this point, congratulations are in order, since you've now become an employer and have to deal with a whole new set of problems as well as a new set of possibilities.
Hiring someone means you can branch out some more, or just cover other contracts better. The ideal behind hiring someone is that you do it before you absolutely need them. This way you get them trained before you lose productivity and income due to training them. It's hard to do, mentally and financially, but it'll pay off when more work comes your way.
You should have a lawyer work with you on any contract you draw up or at least look over before you sign it. There's a lot of contracts that include illegal or unenforceable claims. Depending on the laws in your jurisdiction, that might invalidate the whole contract or just the claim.
This is entirely up to you and your ability to budget. If you have them pay yearly, you have to make sure you can live with getting paid only once a year. Farmers do it when they harvest their fields, but that doesn't mean it's easy. Plenty of them don't budget correctly or have a problem when something unexpectedly breaks.
Getting paid monthly might work, depending on if that payment hits before your bills are due. And what happens if the payment is late? You still need to budget so you can weather the "it's in the mail" or "oh, was that due this week", and the horrifying "we just don't have the money to pay you this time", among plenty of other reasons/excuses for late or non-payments.
As you are an independent contractor, getting paid every week or bi-weekly might not make sense. It might work if your contract company cuts your check the same way and at the same time as it's employees, but that's not likely for a larger company. It might be a "perfect fit" or it might cause them problems. Talk to them about how they want to do it and decide if you need to negotiate this.
There's also the Net 30, 60, 90 day options, where you give them a bill and they have 30, 60, or 90 days to pay it. Make sure you specify this point with them, which you might have to also negotiate. Some industries have Net 90 as a standard payment schedule, which leaves you without payment for 3 months. If this is an ongoing thing, it might suck to get started, but can be better once payments are established, and you'll get paid for 3 months after your last job for them. It has it's downside, sure, but also an up side.
And make sure you have a clear line of communication to them about payments, such as when something gets fouled up. Know that you have someone to talk to to get things straightened out. You don't want to play phone tag with 10 people for 3 months to get your fee. Also, consider any amount of time you're spending to track down people as part of the time you work for them. Make them pay for the time they are costing you, unless your lawyer says you can't.
I'm sure there's plenty of other advice I'm missing here, as well as other viewpoints. If anyone does have those missing pieces, feel free to add your answer, since I'm not interested in arguing. This is not intended to be an all encompassing answer, just information I've gathered through years as working as a sub-contract as well as talking with other contractors and freelancers. YMMV and laws in your part of the world may be different, so please, add that info in a non-confrontational way.