Sharding strictly speaking is a synonym for "horizontal partitioning" or dividing up a database table by its rows.
In common use, sharding refers to having some data for an app on one database server, and other data in another. Often this is done by having specific tables hosted on specific servers, with a function determining which server contains the information being requested.
Sharding is frequently discussed with regard to large web based applications, but is not limited to any particular industry.
As a practical example, a WordPress MultiSite installation hosting several hundred thousand blogs could have the tables for sites 1-100,000 running on one database server 100,001-200,000 on another or 200,001+ on a third. An alternative sharding implementation could be to have the 50 busiest blogs' tables split between the first two servers all remaining blog data on the third server. Likewise, data could be partitioned based upon the geographic location of the web servers delivering each blog.