I actually started out with Unity (3D engine for C# and Javascript). But doing 2D in a 3D engine felt like a complete waste.
So. I decided to give XNA a try, and after a few online tutorials I decided to buy a book about XNA 4.0(my very first programming book). After working through half of it (the part that covered 2D) I decided that I'd give it a try in XNA. And I've never been happier with my choice.
During the last 2-3 months I've learned a lot. XNA does a lot of the hard stuff for you, while still giving you the feel that you are actually creating something.
I'll link to a video below that I've made recently showing the progress of my game. It might not be much for the pros out there, but for me, who's mostly self taught, I am quite proud of what I've accomplished so far. - My point is - I'd go for XNA since it's a nice first step into game developing (I'm still taking my first steps) and I'm pretty sure that if I had jumped straight into c++, I wouldn't have gotten this far, and chances are I would've lost my motivation on the way.
The Video:
[media]
[/media]