When speaking about plane curves, one of the most fundamental and important results is Bézout's Theorem, which states that over an algebraically closed field $k$, two plane projective curves of respective degrees $d$ and $d'$ with no common component meet in exactly $dd'$ points, counted with multiplicity. One can also compute it in several other ways, see for example this question. However, computing intersection numbers in a more general setting usually gives me a lot of trouble.
Say we are working over the field of complex numbers $\mathbb{C}$ and consider a complex manifold $X$ of dimension $n$ and a complex submanifold $Y \subset X$ of dimension $m$. Then, by Poincaré duality, we get the (well-defined) fundamental class of $Y$ defined as $[Y] \colon H^{2m}(X,\mathbb{R}) \to \mathbb{R}$, by sending an $m$-form $\omega$ representing a cohomology class to $\int_Y \omega$. If $Z \subset X$ is another complex submanifold, say of dimension $n-m$, then one has $[Y]\cdot [Z] \in \mathbb{R}$, by wedging the respective representative forms and integrating over $X$. One can then show that if the intersection $Y \cap Z$ is finite, then $[Y]\cdot [Z]$ equals the cardinality of this intersection, counted with multiplicity.
One standard example of computing these intersection numbers is considering the blow-up $\pi \colon \hat{X} \to X$ of $X = \mathbb{P}^2$ at a point and the computation of the self-intersection of the exceptional divisor.
Then one can go one step further and define the following. $X$ is as above, $Y \subset X$ is now an irreducible analytic set of dimension $m$ and $L$ a line bundle on $X$. Then one can define $L^m.Y := \int_Y \omega^m$, where $\omega$ is a $(1,1)$-form which represents the first Chern class $c_1(L)$ of $L$. (One can also define $L^m.Y$ on singular complex spaces, say reduced. But let's say that this does not play a role in this question.)
On manifolds, this is just the the fundamental class $[Y]$ evaluated at $c_1(L)^m$. This intersection number is widely used in algebraic geometry and complex analysis, for instance in nef- and ampleness criteria like Nakai-Moishezon, or in the definition of numerical equivalence and hence also in the definitions of the nef and ample cone.
But how can one compute this intersection number in practice? It does not seem very appropriate to use the definitions. A lot of texts that I've been reading use somehow intuitive and not very rigor arguments, not explaining why the intersection number takes the desired value. More generally, if one has a specific variety and a line bundle on it, how can one decide via intersection numbers (i.e., what standard methods come into play) if this line bundle is ample or nef? Can somebody please give a more or less complete overview of standard methods which can be used to compute intersection numbers? It does not have to be detailed, a good reference or a good example would also satisfy me.