A good alternative to a 'retainer' is a 'monthly maintenance' package.
So for example, a monthly maintenance package could include
1) Regular ongoing updates to the site software (i.e. especially important if you are using software packages such as Joomla! or Wordpress);
2) Regular back-ups (off-site and tested);
3) A set amount of hours for available phone and/or email support per month; and
4) Security response (you have to be careful with this one - if you offer it, you have to be competent and have a process to handle security issues (i.e. a DDoS attack and so many others)).
If you can effectively communicate the value proposition to the client for a monthly maintenance package (and there is enormous value in such a package), you can then discount 6 months or or annual packages - in order to get bulk payments upfront.
Not only will you be better serving your client, you will help them to budget and you will also improve your cash-flow.
In a sense, this is a type of retainer for your services - just not one for 'hourly design/development.'
Putting the shoe on the other foot - the only time, as a client, I would consider paying a 'retainer' to an I.T. Freelancer is if a) I knew that I would have at least a set amount of ongoing work for that Freelancer; and b) it would be difficult, if not impossible, to secure those particular expertise when required.
That said, if a client is willing to pay you a retainer, it is likely because they want to ensure your availability and dedication to their projects. If that's the case, it is one of the highest compliments you can get as a freelancer and if you like the work, the client and the compensation - take the retainer and pat yourself on the back!!!