I know this is an old question, but it popped up on my feed today. I gave an answer many years ago, and from the comments it seems it was more confusing than helpful. I wanted to post a new answer, because I think the graph-theoretic approach here is too beautiful to not capture. All of the below is from Stallings's Topology of Finite Graphs paper.
Let $F$ be a finitely generated free group of rank $n$. Then $F$ can be represented by a finite wedge of $n$ circles, where we color each circle with a generator. For example, if $F=\langle\alpha,\beta,\gamma\rangle$, then we would have:

Any finitely generated subgroup of $F$ can be represented by a graph immersion, as follows. Let $1<H\le F$ be generated by $\{w_1,\ldots,w_m\}$, where each $w_i$ is a word in the $n$ generators of $F$. Then draw a graph that is the wedge of $m$ circles, where the $i$th circle is segmented to correspond to the word $w_i$. For example, if $H=\langle\alpha^2\beta, \gamma^2,\alpha\beta\gamma\rangle$, then we get the following graph for $H$:

A folding is identifying two edges in a graph that have the same starting/ending point, and the same color. Since this is a finite graph, after a finite number of foldings, we will end up with an immersion:

An immersion is one where every vertex has at most one incoming/outgoing edge of a given color. This is weaker than a covering, where every vertex has exactly one incoming/outgoing edge of a given color. But that points to how to turn every immersion into a covering: simply add the missing edges. Example for $H$:

This new (covering) graph corresponds to a subgroup $K\le F$. Since the graph is finite, $K$ is finitely generated and the covering is finite-sheeted, so $[F:K]$ is finite. Because we didn't add any new vertices to this covering graph, a spanning tree for the original (immersion) graph is still a spanning tree for the new (covering) graph. So the edges excluded from this tree gives a free basis for $K$, which contains a free basis for $H$ as a subset. This means that we have $K$ freely generated by a set $\{a_1,\ldots,a_r,b_1,\ldots,b_s\}$ where $H$ is generated by the $\{a_i\}$. In our example, we have \begin{equation}
K = \langle \alpha^2\beta,\alpha\beta\gamma,\gamma^2,\beta^2, \alpha\gamma\beta, \alpha\gamma^{-1}\beta, \gamma\beta\alpha^{-1},\beta\alpha\gamma, \gamma\alpha \rangle
\end{equation}
More generally we have proved
Theorem (Hall): If $H\le F$ is a finitely generated subgroup, then there exists a finite index subgroup $K\le F$ containing $H$ where $H$ is a free factor of $K$.
Now if $s>0$ above, then note that $b_1^{-1}a_1b_1\not\in H$, so $H$ is not normal in $K$. This means that if $H\lhd G$, then we must have $s=0$, so that $H=K$, and the original immersion representing $H$ was already a covering. In other words, we have
Theorem (Greenberg): If $1<H\lhd F$ is finitely generated, then $[F:H]$ is finite.