I'm not a set theorist, but I understand the 'pop' version of set-theoretic forcing: in analogy with algebra, we can take a model of a set theory, and an 'indeterminate' (which is some poset), and add it to the theory and then complete to a model with the desired properties. I understand the category theoretic version better, which is to take sheaves (valued in a given category $Set$) over said poset with a given Grothendieck topology (the double negation topology). The resulting topos is again a model of set theory, but now has the properties you want, absent from the original $Set$.


But what *is* this poset, really? Is it the poset of subobjects of the set you want to append to your theory/model (say a set of a specified cardinality, or some tree with a property)? Is it related to a proof of the property you are interested in? To clarify, I'm not interested in the mechanical definition of an appropriate generic poset, but what it is morally. Bonus points for saying what it 'is' before and after forcing, if this even makes sense.



What is the generic poset used in forcing, really?
The other answers are excellent, but let me augment them by
offering an intuitive explanation of the kind you seem to
seek.


In most forcing arguments, the main idea is to construct a
partial order out of conditions that each consist of a tiny
part of the generic object that we would like to add; each
condition should make a tiny promise about what the new
generic object will be like. The generic filter in effect
provides a way to bundle these promises together into a
coherent whole having the desired properties.


For example, with the Cohen forcing
$\text{Add}(\omega,\theta)$, we want to add $\theta$ many
new subsets of $\omega$, in order to violate CH, say. So we
use conditions that specify finitely many bits in a
$\omega\times\theta$ matrix of zeros and ones. Each
condition makes a finite promise about how the entire
matrix will be completed. The union of all conditions in
the generic filter is a complete filling-in of the matrix.
Genericity guarantees that each column of this matrix is a
new real not present in the ground model and different from
all other columns, since any finite condition can be
extended so as to disagree on any particular column with
any particular real or from any particular other column.


With the collapse forcing $\text{Coll}(\omega,\kappa)$, we
want to add a new surjective function $f:\omega\to\kappa$.
So we use conditions consisting of the finite partial
functions $p:\omega\to\kappa$, ordered by extension. Each
such condition is a tiny piece of the generic function we
want to add, describing finitely much of it. The union of
the generic filter provides a total function $g:\omega\to
\kappa$, and the genericity of the filter will guarantee
that $g$ is surjective, since for any $\alpha<\kappa$, any
condition $p$ can be extended to a stronger condition
having $\alpha$ in the range.


And similarly with many other forcing arguments. We design
the partial order to consist of tiny pieces of the object
that we are trying to add, each of which makes a small
promise about the generic object. If $G$ is a generic
filter for this partial order, then the union of $G$ is the
joint collection of all these promises.


In many forcing arguments, it is not enough just to build a
partial order consisting of tiny pieces of the desired
object, since one also wants to know that the forcing
preserves other features. For example, we want to know that
the forcing does not inadvertently collapse cardinals or
that it can be iterated without collapsing cardinals. This
adds a wrinkle to the idea above, since one wants to use
tiny pieces of the generic object, but impose other
requirements on the conditions that will ensure that the
partial order has a nice chain-condition or is proper and
so on. So the design of a forcing notion is often a
trade-off between these requirements---one must find a
balance between simple-mindedly added pieces of the desired
generic object and ensuring that the partial order has
sufficient nice properties that it doesn't destroy too
much.


In this sense, I would say that the difficult part of most
forcing arguments is not the mastery of the forcing
technology, the construction of the generic filter and of
the model---although that aspect of forcing is indeed
nontrivial---but rather it is the detailed design of the
partial order to achieve the desired effect.


