Question: Forgive me, but I don't know the technical term to know what to search for.

I am trying to find a way to keep track of changes in my code during the development of my program. something that would allow me to go back to a section of code that I deleted. I am not talking about "undo". But rather a way that would let me keep track or be able to retrieve a section of my code that I deleted but now want it back.

Is there such a way? If there is, then what is this whole system/procedure called? Is there something that integrates with Visual Studio 2010?

Answer: 
The term you are looking for is Source Control. Modern source control's provide all the functionality you described plus much more.

Team Foundation Server seamlessly integrates into VS2010 and is very useful. Read through [Source Control for Visual Studio](http://msdn.microsoft.com/en-us/library/zxd4dfad%28v=VS.80%29.aspx) to get up to speed.
I'm not familiar with Visual Studio, but generally there are two approaches to implementing this:

1) Source/Revision control - But the problem is that it is very low-granularity, you usually commit a file when it is ready, but lose any interim changes. There are a lot of solutions compatible with visual studio.

2) A local history that tracks multiple versions between commits. Eclipse has this built in, not sure how to access it in VS.

3) A very granular log of all your development activities so you can examine and revert past changes. Not familiar with a commercial version of this. I once developed something like this for Eclipse.