Forcing was invented by Paul Cohen in 1963 in order to prove the relative consistency of the failure of the continuum hypothesis with the axioms of $\sf ZFC$.
The idea is to fix a model of $\sf ZFC$, and define internally to that model a partial order which describes partially the new object we wish to adjoin (e.g. a new subset of $\omega$). By adjoining a generic filter to this partial order, where generic means that it meets every dense set that the model knows about, we can show that the object defined by the generic filter inherits the properties which are true on dense sets, and that the model we have when adjoining this generic filter is still a model of $\sf ZFC$.
Moreover if the model chosen was countable, then we can prove the existence of a generic filter.
For example, if $M$ is a countable model of $\sf ZFC$ and our partial order is all the finite subsets of $\omega^M$ ordered by end extension, then a generic filter would define a subset of $\omega^M$ which is not in $M$. To see this, note that if $A\in M$ is a subset of $\omega^M$ then it defines in $M$ a dense set of all the finite subsets which are not included in $A$, why is it dense? Because we can always extend a finite set so it will not be a subset of $A$ anymore. So subset defined by the generic filter has to be different from $A$.
To read more here is a few good resources:
- Jech - Set Theory (3rd Millennium edition).
- Kunen - Set Theory.
- Halbeisen - Combinatorial Set Theory