I was wondering about a straightforward way to take a GRanges for instance that originate from a BED file and pull out intervals specific to different genomic features such as promoters or intronic/intergenic ChIP-seq peaks etc? Thanks.
Just use findOverlaps to identify overlaps between your GRanges and the intervals returned by various functions from the GenomicFeatures package, e.g., promoters, exons, intronsByTranscript, and so on. You'll have to specify the transcriptome of interest, obviously, and you'll need to think about how to report the results when your regions overlap multiple features (e.g., intron/exon-spanning). But you would have to think about these things anyway, there's no obvious single answer for dealing with multiple overlaps.
Incidentally, csaw contains a detailRanges function that reports all overlaps of a set a genomic regions to common annotated features. However, this is mostly intended for reporting multiple overlaps in a compact tabular format, rather than for further analysis where some thought is required as discussed.