What is Sharepoint?
Microsoft Sharepoint is a pre-built web application primarily designed to help you easily deploy an organizational "intranet". It is designed to be an easy to use, "point and click" approach to building a website, so no programming skills are required once Sharepoint is installed.
There have always been essentially 2 versions of Sharepoint: a free version that is free if you own a Windows server license (which almost everyone does), and a paid version. The software is the same - the paid version includes extra functionality. With Microsoft Sharepoint 2010 there are now 2 versions of the "paid version".
See http://sharepoint.microsoft.com/en-us/buy/Pages/Editions-Comparison.aspx for a comparison of the different Sharepoint 2010 versions.
Using It Out-Of-The-Box
Sharepoint's sweet spot is that it allows non-IT people to easily create and maintain an intranet. With a little bit of training, non-IT people really can create and maintain an intranet with nominal assistance from IT.
Sharepoint primarily consists of 6 "wizards" to help you easily create an intranet:
The "lists" wizard is the most powerful as it let's you easily create online databases. Obviously, Sharepoint's list feature isn't as powerful as a true database, but it is simple to use, doesn't require any programming, and is great for certain applications that don't require complex functionality.
Sharepoint doesn't really include any "reports" per se. Rather, users can easily create "views" of their data that can be exported to Excel with a push of the button.
Sharepoint includes a Microsoft SQL Server database behind it. So, if you need to build some custom reports (beyond the built in views) you can do so with any reporting tool that works with a SQL Server database. Most people tend to use Microsoft's SQL Server reporting services tool to create custom reports on Sharepoint data.
Customizing It With Programming
Many organizations use Sharepoint out-of-the-box and never perform any customizations of it. But if you need to customize it, you can.
Sharepoint can be tailored with 5 types of programming tools:
Sharepoint Designer can be used to modify the look and feel of a Sharepoint site (see http://sharepoint.microsoft.com/en-us/product/related-technologies/pages/sharepoint-designer.aspx)
Custom forms can be built using Microsoft's InfoPath form development tool (see http://office.microsoft.com/en-us/infopath/).
Visual Studio, Microsoft's .net programming tool, can be used to modify Sharepoint and create custom code that can run in Sharepoint.
Since Sharepoint is built on a SQL Server database, any database person with knowledge of SQL programming can make certain customizations to Sharepoint.
Microsoft Access has a built-in wizard to connect to Sharepoint's SQL database. Since this wizard is easy to use and doesn't require knowledge of Sharepoint SQL database table structure, some organizations use Access as a custom front end to Sharepoint.