Say I'm making this big game in C# with XNA.
What options do I have to include a scripting feature to my code base?
I advocate not using a scripting language in C#. C# is already solves the vast majority of problems that a scripting engine is used to solve. Just use C# in the way you would use a scripting language.
Because I've been over this several times before, here is some reading material for you:
If you plan on targeting the XBox360 or Windows Phone 7, then your options are limited. Those platforms do not support runtime code generation, so your only option would be an interpreted language. I would recommend steering clear of interpreted languages, as their performance tends to range from "sub-par" to "abysmal".
If you are only targeting Windows, and you really need/want a scripting language, then have a look at IronPython or IronRuby. Both target the DLR and perform very well (for being dynamic languages).