Blockchains are in themselves not capable of revealing truth or facts about the world outside of the blockchain. But if you somehow can get that information onto the blockchain in a reliable manner, you can design contracts whose execution depends on what happens in the "real world".
Let's say we make a contract that depends on the price of oil in 90 days. After 90 days, we execute the contract and it asks another contract (an oracle) for the price of oil. If one person decides what the oracle returns, he can cheat to benefit himself or his friends. But if several people can vote on what the price of oil is, we can use economic game theory to make it more likely that the oracle contract will tell the truth.
The idea is to let people vote on what the price is and reward those whose guess is closest to the median value of all the guesses and punish those whose guess is further from the median. Then no single entity would be able to set a false value in the oracle and the more people you have participating in this process, the less likely a conspiracy to set a false value becomes.
For more information on how oracle's values can be set, have a look at this article.