If you want to program your own acoustic-sounding drum parts in Sonar, I would recommend FXpansion DR-008 drum sampler/synthesizer with the best wav drum samples you can get. Drumkit From Hell works very well for me for Rock/Pop/Jazz/Blues/R&B, although there are many other sample libraries, even free ones on the Web.
You basically insert DR-008 as a DXi in a Sonar project and load your wav samples into it, then use either a keyboard controller or the piano roll in Sonar to trigger the samples via MIDI.
A demo of DR-008 can be downloaded here
http://www.fxpansion.com/product-dr008-main.php
Two other programs that I use in conjunction with DR-008 are Slicy Drummer and Fill-In Drummer. They have libraries of pre-programmed MIDI grooves and fills, which are very flexible and a great way to get started without having to program all your drums from scratch, especially if you don't have a good understanding of drums...
You may also want to look at BFD, also from FXpansion. I haven't had a chance to try it, but I hear great things about it (BTW I don't work for FXpansion
)
If you want realistic sounding drums but don't want to spend the time programming, you could use loops. It's a quick and easy way, but you'd lose the flexibility of programming exactly what you want.
As far as drum machines, I find them to sound too "robotic" for my Rock/Jazz style, but that may be just what you want for dance or techno!