Unless you are willing to pay $10,000 for an XBOX or Playstation devkit, then the only console you can develop for is the XBOX 360, and the only way you can do it is with XNA.
For professional development, unless you really need to get 100% of the processing power of the XBOX (which most games, especially 2D games do not need), then XNA in my opinion is actually much better for development.
Some mistakes that other answerers have made:
The XBOX has only 3 cores. You get access to all of them with XNA.
Each core has hyperthreading and support for 2 hyperthreads. You only get access to 4/6 threads. One of those threads is for XNA. The other is a thread that no game developers get access to, as it is used by the XBOX OS.
C# on the XBOX is much slower than C# on Windows. The XBOX uses the .NET compact CLR, which is very lightweight and lacks many of the desktop CLR's optmizations. The XBOX security features prevent programs from modifying their own source code. This makes it very difficult to even allow .NET code to run, much less to run fast. Part of what makes managed code competitive in performance with C++ native code, is that the CLR can modify it's own code to optimize cache coherency. The XNA dev team has to jump through some pretty big hoops just to get C# to run on the XBOX at all, and there is an associated performance cost with these hoops.
You don't get to be TOO lazy with memory allocation. XNA on Windows greatly simplifies memory allocation, as you'd expect from a managed environment. However, on the XBOX, the .NET compact CLR uses a sweep & compact approach to garbage collection, and the typical approach to preventing stuttering in your game due to collections, is to avoid collections altogether. This requires using object pools for your classes, and using structs for smaller objects, where you'd normally uses classes in the Windows environment. Object pooling generally requires an allocate/free model of object management, which is no worse (and maybe a little bit better) than C++ memory management.
That said, development in C#/XNA is still many times faster and easier than development in C++ without a DirectX API (which XNA is).
Here's the status of a game I'm making in XNA, after 4 weeks of work:
That should give you a sense of how incredibly fast development with the XNA library/API is in combination with C#.
That screenshot is rendered by the XBOX at about 65FPS.
If you're a hobbyist game developer, and you want to make games for a console, not only is XNA+XBOX your only realisitic option, it's also a pretty amazing option, a fun development environment, and many XBOX Live Arcade games have been made with XNA, and made hundreds of thousands of dollars doing it. (Limbo for example.)