I'm completely new like everyone making topics in this category. I'm just not sure about the language I should start to learn because for e.g, I don't wanna be stuck with terraria-like games if I learn XNA. This happens mostly because I have no idea how this area (programming) works. Neither do I know how to learn and which communities to be in.
The upper limit for what you can do with XNA is not terraria, You could make games with a visual quality that rivals games like Skyrim or other modern console titles with it (Given enough skill and time), Its really not the tools you use that determine what the game will look like.
Here is a XNA demo microsoft have made:
Edit: This is silly, i post a youtube link and the forum has to make it inline (Rather than a clickable link) and then it removes it entierly...
http://www.youtube.com/watch?v=rRGMcFswwik //in case it removes the vid
You could write a game that is identical to BF3 using Java if you wanted to, Your choice of language can potentially increase the system requirements of the final product (Allthough strictly speaking this has far more to do with the compiler/VM than the language itself) and your choice of graphics API can restrict you somewhat in terms of what hardware features you can use, XNA is essentially at the same feature level as DX9 and the xbox360).
If you want to make high quality games you should use the tools that simplify the process the most, (Unity, UDK, XNA are all good options for the PC)