I have been using an alternate dialer for so long I'm not sure about speed dial from the native dialer. If my memory is accurate, not being able to do so was one of the reasons I went with a different dialer. At any rate Dialer One will certainly allow speed dial with a long press, much like basic cell phones have done for years. It is free and worth a try in my opinion.
you can set 1 button dial shortcuts on your home screens by:
long pressing on desktop> shortcuts> direct dial> then choose the person you want to have a direct dial button for
If you dont have much room on your home screens then just make a folder by long pressing on the desktop> folders> new folder. You can then open the folder and long press on the grey bar where it says "new folder" and rename it to whatever you want and just place all of your direct dials in there.
If you dont like that then you can go to the market and download "speed dial old school" and with that application you can set a number from 1-99 to any of your contacts just like a regular speed dialer.
If you dont like that then you can go to any of your contacts and click on their name and then press the star button in the top right and then they will be added to your favorites tab and all you have to do then is open up contacts then the fav. tab and click on the person.
Start typing the name of the contact you want to add to speed dial, then long press on the contact you want to add (not the phone icon, but the name), and then when the menu comes up, tap Speed Dial. It'll let you assign anything between 2-99.
To actually dial a two-digit speed dial number, tap the first digit, then long-press the second digit.
By the way, another option that you'll see pops up when you long-press the contact is "Send Contact." That option will send that person's contact info to Gmail, Handcent, etc. for easy forwarding on to someone else.