There are two high-level SDKs that you can use to build Kinect applications relatively easily. The first is OpenNI+NITE by PrimeSense, the company that designed the sensor used in the Kinect. The other is Microsoft's own Kinect SDK which is based on C#.
Both of these have very restrictive licenses. If you're not a hobbyist or an academic, there's no clear path to acquiring a license that would allow you to deploy applications. I imagine PrimeSense is happy to license their toolkit, but I have no idea about the price -- I'd imagine it's not cheap. The Microsoft SDK is going to be available for commercial licensing next year, but the terms are not known yet (AFAIK).
There is a third option for building Kinect applications, and this is the one I chose for my software. Instead of using the high-level SDKs, you can access the raw depth camera data from the sensor using a free driver. The data is quite clean because the Kinect does a lot of processing internally, so all you need to do is build the high-level interface -- i.e. interpreting the depth data to detect people and gestures, or whatever it is that your app needs to do. This way, the resulting app is not tied to the PrimeSense or Microsoft SDKs.