Each HTML element has a meaning—otherwise known as "semantics"—so each time you use an element, it's best to think in terms of "what does this element tag mean?" when you are writing your markup.
CSS was developed as a separate "layer" of the page to deal with appearance, so whenever appearance is an issue—that is, visual design—think in terms of CSS styling.
While developing a site, it's a good idea to turn off CSS at some point and see if the HTML itself "makes sense". For example, is there a logical sequence of headings?
You can style each element pretty much any way you want, so if you find that you must have multiple H2s styled differently from each other, you can easily style them separately. (A good example might be having the H2s in a sidebar styled differently from H2s in the main content.)