Linking Number and Intersection Number Let $\Sigma$ be a smooth compact surface in $\mathbb{R}^3$ (for simplicity).  If a closed curve $\gamma$ is linked with $\partial \Sigma$ with linking number $n$ (mod 2) then $\gamma$ should (generically) intersect $\Sigma$ in $n$ points (mod 2).  What is the right topological machinery one needs to prove this?
 A: The short answer is homology theory and Poincare duality! Also as a comment, the intersection number exactly equals the linking number if you count intersections with appropriate sign.
Let $L=L_1\cup L_2$ be a link of two components. Then consider $L_1$ as a homology class inside $H_1(\mathbb R^3\setminus L_2)\cong \mathbb Z$. This integer is the linking number. This is essentially equivalent to the definition you give in terms of intersection number. This is because $H_2(\mathbb R^3\setminus n(L_2),\partial n(L_2))\cong \mathbb Z$, and there is a bilinear pairing 
$$H_1(\mathbb R^3\setminus L_2)\otimes H_2(\mathbb R^3\setminus n(L_2),\partial n(L_2))\to\mathbb Z$$ given by intersection number. In particular, a meridian to $L_2$ intersects a surface $\Sigma$ bounding $L_2$ in a point, so that a way to read off how many multiples of the meridian you are homologous to is to check your intersection number with $\Sigma$. Here $n(L_2)$ is a tubular neighborhood of $L_2$ with torus boundary. (The intersection pairing is closely related to Poincare duality, to answer your original question of what machinery is necessary to prove this.)
The next question is why the class of $L_1$ inside $H_1(\mathbb R^3\setminus L_2)$ equals the linking number. One way to see this is that you can disentangle $L_1$ from $L_2$ by doing crossing changes, which correspond to adding or subtracting multiples of the meridian to the homology class represented by $L_1$. This is equivalent, if you think about it a bit, to the usual definition of linking number as counting crossings with sign. I leave the details to you.
