With some editors, you'll have much better luck applying styles to block level elements if you don't actually select text but rather simply place your cursor inside the block element. Editors often associate selected text as a portion of the parent block even if you've selected the entire block, hence the span tag.
If you're using TinyMCE, which it sounds like you are, the best way around this is to train your clients to use the handy path indicator at the bottom of the editor window which will show the current location within the underlying markup. You can click on elements in this path to select a parent block and then apply styles to that block.
You might want to look at Redactor as well http://www.modmore.com/extras/redactor/
. TinyMCE is a bloated mess at this point in my opinion.