I am no longer comfortable paying annually for any service, be it web hosting, cable TV or wireless services (not that the last two offer annual, but I meant that contractual obligation...). Signing up for a year with a hosting company feels like signing a contract with a wireless carrier. It has also been rather difficult to get your money back if the service goes sour and you want to leave, so my recommendation, and personal preference have always been to go for month-to-month billing.
That is unless you get lucky with the provider and you have been with them for an extended enough time to trust their level of support will remain strong.
I'm with Artashes and Steve on this - for the most part, I prefer the monthly payments (if I was paying for shared hosting)
We have a few services that we offer our clients in which we know we will continue to offer the services, so locking into a 3 year plan with OUR provider has offered significant discounts.. Sometimes reducing as much as $40,000/year in savings.
So, it depends on what the product is, who it's from, and what the longevity and lifespan of the product will be. Domain names, I don't see a reason to go on a yearly payment - lock it in for 5 or 10 years (if you know you're going to be around). Monthly fees for cPanel licenses - lock that sucker in for the year and take the discount. Shared webhosting - it depends on who you're hosting with I guess. We see many people jump at the extended years for the extra savings and additional bonuses.
Much like I don't like having a car payment each month and rather pay off in 6 month chunks, or pay the whole thing off to start with, I do the same with most of the services/products I purchase in the hosting world too. Sometimes buying those large servers upfront can save you money, other times slapping it on the credit card is a more feasable approach.
With things coming and going so quickly, particularly projects, I prefer to pay monthly, especially with service providers (phone, hosting, cable) I like monthly payments since you never know in most cases (unless you get a free trial) how rock solid the service will be.
Okay I look at it this way, I like to pay monthly on vps, dedicated or things that are higher dollar values. When it comes to things like shared, reseller hosting if i can get a good deal, for 1 year where i know that if things start to go down that i can find another host really quick for a cheap price then i guess to me it's a loss vs loss issue which is the greater loss the extra dollar a month i have to pay.
My look is this way
Provider A: $12.00 a year
Provider B: $3.00 a month
Provider A is great for 3 months than starts having long periods of downtime.
for 3 months of service i have paid $12.00
Provider B: 100% uptime no issues.
in 3 months at plan b i have paid $9.00
The total difference between them is a wash really of 3 dollars.
But if provider A: ends up being pretty solid i have saved $24 dollars with is a savings of 200%