The Ensembl VEP will report if any variants have fallen within any promoters or enhancers predicted from ENCODE/Roadmap Epigenomics data by our regulatory build, and if they've fallen in in TF motifs and change the motif strength.
use snpeff to predict effect of snp, set maximum upstream length in snpeff first though as 1000bp is default I think, and filter for effect for upstream of gene. Then look at them in more detail. There may be a specific tool to do this but don't know it. Would be interested if someone has a more automated method if promoters are not annotated already..