I am starting to read up on SP development but none of the books I have checked have been able to answer this seemingly simple question.
I am pretty new to the dev side of things and feel like I missed something obvious.
A feature is a development package that can be removed and deployed at will from the SharePoint side. Let's say we have a feature in Visual Studios that is a web part. If we deploy this web part as a feature (like most do) in Visual Studios, that web part will be immediately available because it will deploy the feature to sharepoint, and turn on that feature. It also gives the ability to site administrators and farm administrators to turn off (or toggle) the feature. That way the web part will no longer be available.
SharePoint Feature (2007 but still applicable)
Features make it easier to deploy managed solutions or site customizations to SharePoint. A feature can be just about anything, but more often than not it seems they are ASP.Net wrapped in a solution and deployed to SharePoint. (IMHO)
Check these out, see if they help:
Feature is a unit of deployment that generally includes content such as .aspx application pages, list schemas, customizations expressed in CAML
I also highly recommend to read Ted Pattisons book: http://www.amazon.com/dp/0735623201/?tag=stackoverfl08-20