For the everyday man, its nothing you should concern yourself with. Web developers aka website creators use the "?" to retrieve certain data and use that data to display the page differently or according to the details after "?"
The simplest example is, if your looking through a picture gallery website (www.pics.com, it is an actual wesbite I'm just using it as an example) with 100 different photo's and each page only displayed 20 photo's. Instead of creating 5 different pages for each set of 20 photo's what web developers can do is use what is called a parameter, something like ?page=1. Developers can read the "page" value and then based on that value can dynamically "create/modify" different displays on the fly, so in this example, the webpage "www.pics.com?page=1" will show the first set of 20 photo's, then "www.pics.com?page=2" will show the second set, "www.pics.com?page=3" the third set and so on and so on.