A good thing to think about is what a user has to do in order to checkout. Is your checkout process 10 steps long, are you asking for intrusive and unecessary information, is the language used misleading? These are all important things to think about when setting up your checkout process.
It may be a good idea to limit your checkout to be about 1 - 4 steps, this has been proven to decrease cart abandonment.
Another good idea is to only ask for the information you truly need ( do you really need their date of birth or gender? )
A good tip is to not force the user to sign up an account to purchase, this brings frustration to a customer and may lead to an abandonment. You can have them checkout as a guest, use paypal, google checkout or you can make their checkout process in sync with signing up an account so it is less invasive.
It is also extremely important to use concise wording, use continue and confirm for buttons instead of long phrases like "continue to step 3"
Make sure that the last page a customer sees and states for them to confirm the purchase make sure they actually confirmed it on the previous page, the confirmation page is just to show what they have just purchased. Studies have shown that when users see a page like this they assume that the item has been purchased and will abandon the cart.
Feel free to add to this post because there are many more great ideas and you can go so deep into checkout theory ( eye tracking, language, process, etc...)