On-device speech recognition is harder, works less well, is more expensive, and is generally not the usual approach. If you need network connectivity for your app, it's usually simpler and better to send off the audio.
We tried on-device speech rec. The unfortunate barrier to entry for this technology is something called Acoustic Models which are basically normals data collected from voice sampling. The bigger and better your AM, the more accurate your speech rec. A good sized AM could be gigabytes worth of data and we're just talking about US English.
Not only that but the actual recognition itself is pretty intensive CPU/memory wise. Sure you can have local speech rec as Apple does on the 3GS but that speech rec is pretty constrained: only having to recognize several hundred contact names or song titles and even then has a hard time. Try loading up thousands of contacts or songs on your device and see how well or consistent it is.
At any rate, AMs are like gold and pretty much all of them are proprietary. Ever think why Google offers a free 411 service..?? They want to build out their proprietary AMs.
So you either have to make your own AM - very hard to do - or roll with an existing solution, most of which are server based. I used Lumenvox (lumenvox.com) since they seemed to be the most developer friendly and were a pleasure to work with. The Dragon guys would sooner compete with you then sell you a product.