You can prove this using algebraic topology$^{\dagger}$: in fact, it follows from an exercise in Hatcher's book (see this related math.SE question). Basically: use Reidemeister-Schreier. I have written out a "full-ish" proof - but if you are comfortable with covering spaces then this proof is ridiculously quick and elegant!
The covering-spaces proof that $F_2^{\prime}=[F(a, b), F(a, b)]\cong F_{\infty}$ is as follows: The free group $F(a, b)$ is the fundamental group of a bouquet of two circles:
Using $\widetilde{X}$ to denote the universal cover, by standard covering-space theory the derived subgroup $F_2^{\prime}=[F(a, b), F(a, b)]$ is isomorphic to the fundamental group of $\widetilde{X}/F_2^{\prime}$. Now, $\widetilde{X}$ is just the Cayley graph of $\langle a, b; -\rangle$,
while $\widetilde{X}/F_2^{\prime}$ is the Cayley graph of $\mathbb{Z}\times\mathbb{Z}$,
Then, $\pi_1(\widetilde{X}/F_2^{\prime})$ is the group with presentation $\langle V; R\cup T\rangle$ where $V$ is the set of $1$-cells (edges) of $\widetilde{X}/F_2^{\prime}$, $R$ is the set of $2$-cells of $\widetilde{X}/F_2^{\prime}$, and $T$ is a spanning tree for $\widetilde{X}/F_2^{\prime}$. Now, $\widetilde{X}/F_2^{\prime}$ has no $2$-cells, and taking any spanning tree we are still left with infinitely many edges (for example, take the tree $T=\bigcup_{y\in\mathbb{Z}}\{(x, y): x\in\mathbb{Z}\}\cup\{(0, x): x\in\mathbb{Z}\}$). Hence, we have an infinitely generated group with no relations, so $F_2^{\prime}=[F(a, b), F(a, b)]\cong F_{\infty}$ as required.
In fact, there is nothing special about $\mathbb{Z}\times\mathbb{Z}$ here:
Thereom. Let $G$ be an infinite group. If $\phi: F_n\rightarrow G$ is a surjection from the free group of rank $n$, $\infty>n>1$, to $G$ then $\ker(\phi)$ is either trivial or is not finitely generated.
Proof. Suppose $\ker(\phi)$ is non-trivial, and write $N:=\ker(\phi)$. Then, similar to the above, $\widetilde{X}/N$ is a graph; it is essentially the Cayley graph for $G$ given by the generating set $\operatorname{im}(\phi(X))\subset G$ (note the subtlety if there are $x_1, x_2\in X$ such that $\phi(x_1)=\phi(x_2)$). Now, as above, $N=\pi_1(\widetilde{X}/N)$ is the group with presentation $\langle V; R\cup T\rangle$ where $V$ is the set of $1$-cells (edges) of $\widetilde{X}/N$, $R$ is the set of $2$-cells of $\widetilde{X}/N$, and $T$ is a spanning tree for $\widetilde{X}/N$. As $\widetilde{X}/N$ is a graph it has no $2$-cells. It remains to show that for any spanning tree $T$ of $\widetilde{X}/N$ there are infinitely many edges $e$ in $(\widetilde{X}/N)\setminus T$. As $\ker(\phi)$ is non-trivial there exists a non-empty word $W\in F(X)$ such that $\phi(W)=1$. This corresponds to a loop in $\widetilde{X}/N$, and indeed at each vertex $v$ there exists such a loop $\mathcal{l}_{W, v}$ of length $d:=|W|$. Note that the tree $T$ cannot contain every edge of the loop $\mathcal{l}_{W, v}$. As $G$ is infinite there exists an infinite sequence of pairwise non-equal vertices $v_1, v_2, \ldots$ of $\widetilde{X}/N$ such that no two vertices $v_i, v_j$ are linked by a path of length $\leq2d$. Therefore, the loops $\mathcal{l}_{W, v_i}$ and $\mathcal{l}_{W, v_j}$ contain no edges in common. Hence, there are infinitely many edges $e$ in $(\widetilde{X}/N)\setminus T$. We therefore have an infinitely generated group with no relations, so $N$ is not finitely generated as required.
$^{\dagger}$ Serios recently reminded me of this proof in the comments to this fine math.SE answer.
This is an immediate corollary of Theorem 2.1 in
G.Baumslag, "Lectures on nilpotent groups," Regional Conference Series in Mathematics, No. 2 American Mathematical Society, Providence, R.I. 1971.
Theorem (K.A.Hirsch, 1938). Every finitely generated nilpotent group embeds as a finite index subgroup in $A\times B$ where $A$ is a finite group and $B$ is a torsion-free group.
(The result you are after also follows from Corollary 1.21 in Baumslag's book: Residual finiteness of polycyclic groups, which Baumslag also attributes to Hirsch.)
Best Answer
You need to prove that every subgroup is f.g. Proof by induction on nilpotency length $c$. If $c=0$, then $G=1$ and we're done. Suppose $c\ge 1$.
Let $Z$ be the center of $G$. Since $G/Z$ has nilpotency length $\le c-1$, by induction it has max, and is an iterated extension of finitely generated abelian groups, and hence is finitely presented group. Since $G$ is finitely presented, this implies that $Z$ is finitely generated as normal subgroup, and hence that $Z$ is finitely generated. Since $G/Z$ and $Z$ satisfy max, so does $G$.
I used the lemma that if $G$ is f.g., and $N$ is a normal subgroup with $G/N$ f.p., then $N$ is f.g. as normal subgroup. This reduces to the case when $G$ is free, and in this case this amounts to the result that being finitely presented does not depend on the choice of generating subset.