Using the AD9833 for a 2MHz square wave
It actually is not a roundabout method if you really think about it. 

The analog multi-pole low-pass filtering kills the higher harmonics that would otherwise cause large jitter in the output. How could you possibly expect to get sub-clock width resolution in the output waveform without an analog step? 

However, if you just need 2MHz, you can buy a crystal oscillator that directly generates the 2MHz (eg. Fox FXO-HC736R-2 ) or use a higher frequency such as 8MHz and divide it down with a couple flip-flops. The DDS comes in handy if you want to generate oddball and/or variable frequencies or even frequency sweeps with relatively fine resolution. 

Another approach is to use a reference frequency and a PLL such as a 74HC4046, by dividing down the output frequency before feedback you can generate various frequencies.