As far as keyword stuffing, I would avoid it. I've had my best success from 1-2% keyword density. Even 2% seems spammy for a lot of keywords, especially for 3+ word ones.
It's also very useful to leave the user wanting more info. If you've covered your topic perfectly there is no reason for them to click an ad. My terribly written articles seem to do much better in terms of CTR on ads. This fact does bug me, but that's the way it is.
If you're writing in Wordpress, get a plugin that shows your keyword density.
Be sure to cover your tags. H1, h2, h3, etc. Don't feel the need to stuff the keyword into every tag. The page title will be enough, and most like to get it into the h1 tag, too.
Longer articles seem to do much better than shorter ones, 900+ word articles are working for me.
This is more niche/topic related, but "buyer" related keywords/articles get a vastly higher CTR on ads. An article focused on "Dog collars for $5" will do much better than "How to tighten a dog collar." This is obvious stuff, but many people wonder why they have such a low CTR - this is usually the biggest reason.
As someone else mentioned, you could look into LSI keywords. These help make the article look more natural, as a naturally written article will usually have many in it anyway.