There are two ways to get a promoter. Either define it as an arbitrary region from standard gene annotations (e.g. - 1000 + 500 or whatever you prefer - 3000 + 1000 etc), this can be done as described by Antonio with
Biomart (Website or R package)
UCSC table browser (when downloading the sequence you can specify what you want to download . e.g. Promoter/Upstream by XXXX bases)
GenomicFeatures package Bioconductor: look up the function
getPromoterSeq(query, subject, upstream=2000, downstream=200, ...)
Quickest is probably Biomart, it has an easy filtering option where you can put in your list of genes.
You can also retrieve promoters from other data like Giovanni suggested. With CAGE you basically measure the 5' capped site, so the TSSs. There you can also derive your promoter regions, as far same as I understand you have to set your cutoffs yourself.
Second option is using a promoter database e.g. EPD