Most payment gateways will support this, so long as you have the ability to authorise and settle separately.
It can cause issues though. The authorisation hold will typically drop off anywhere between 3 and 30 days later (depending on card issuer), at which point you would no longer be guaranteed the funds at settlement. You may also have to consider cards expiring, or being cancelled (reported stolen for example)
The typical way to work around these issues is;
- Capture card details and perform auth for zero value (to validate card only). The payment gateway will return a token id if the card is valid.
- Just prior to dispatch (days or weeks later), use the token id returned in step 1 to perform full authorization.
- If the authorization fails you need a manual process to re-contact customer for alternative payment, otherwise settle the payment and dispatch.
Paypal has a good page which explains the process, and a good number of examples that cover the kind of problems this scenario can create : https://cms.paypal.com/e_howto_html_authcapture