Most online services like Aweber require all users to double opt-in. Requiring users to double opt-in ensures your email list is completely clean and there aren't any bogus emails in your database. Email servers that send large quantities of emails that bounce back have a more difficult time avoiding Yahoo, Hotmail, AOL and Gmail spam filters. Single opt-in can result in users submitting email address with typos in them. Requiring double opt-in basically eliminates this problem. Virtually all double opt-in emails will be delivered to a valid email address.
Double opt-in is ideal for very large websites where manually removing invalid address is impossible.
If you require double opt-in, expect to lose at least 30% or more of your subscribers right off the bat. I have found on average I lose approximately 40% of my subscribers when I force double opt-in. Email marketers will say there are ways to virtually eliminate this problem, but there are no two ways about it. If you require double opt-in, a significant percentage of subscribers will not confirm their email address. To compensate for this loss you're going to have to almost double your marketing efforts. On the other hand, when you email your subscribers, almost all of them will receive your email.
I personally believe in most circumstances, most email marketers should collect emails on their website and assume the user wanted to submit their email. There is no reason to require confirmation. This will guarantee 100% of the leads who subscribe will be added to your mailing list. Unfortunately a single opt-in will decrease your deliverability rate. Some subscribers will accidentally misspell their email address and without a double opt-in process, you'll be emailing a non-existent address or somebody who didn't subscribe. Both situations are equally bad and they will definitely lead to problems. The best way to avoid this problem is to send a thank you email immediately after the user subscribes with a clear unsubscribe link. Include an unsubscribe link on all the email you send out. Don't hide the unsubscribe link because if it's hard to fine, the user will just mark the message as spam which is much worse.
Almost all self-hosted scripts and programs allow you to choose between double and single opt-in. Likewise, almost all services require double opt-in. If you're a skilled email marketer and you understand why people would report your messages as spam, I highly recommend using a single opt-in. It will work better in the long-run and the short-run.