Edit : Since the writing one of the commenters below wrote a script that will allow you to schedule your gmail messages without outlook or another mail program: https://code.google.com/p/gmail-delay-send/. I haven’t tried it yet, but in looks promising!
The bad news is that Gmail does not support scheduling emails at the time of this posting. The good news is that it does support IMAP, which allows you to access your Gmail account from a third-party email client. So all you need to do is set up your Gmail account in your desktop client, such as Microsoft Outlook, Outlook Express or Thunderbird. You can then use the delay send feature of your desktop email client to schedule the sending of a message in Gmail. If you don’t have a desktop email client, two of the three I mentioned above are free, so get set up on one of those first.
To schedule sending a Gmail message in Microsoft Outlook 2007:
1. Create a new IMAP email account: Tools >Account Settings… > New
2. Enter your Gmail address (note: I am showing the detailed settings, however the wizard will work fine).
3. Nothing special for outgoing server
4. Port settings: I’ve seen others quoted. These work for me.
5. Open a new email and click the Options tab:
6. Click on “Delay Delivery”
7. Set the desired delivery time.
8. Compose and send the message. That’s it!