[proofplan]
Encode each path by the sequence of its unit steps, writing $R=(1,0)$ for a horizontal step and $U=(0,1)$ for a vertical step. The endpoint condition forces exactly $a$ occurrences of $R$ and exactly $b$ occurrences of $U$. Conversely, every word of length $a+b$ with exactly $a$ symbols $R$ and $b$ symbols $U$ determines a unique path by taking cumulative sums. Thus the desired paths are in bijection with the choices of the $a$ positions occupied by $R$, and also with the choices of the $b$ positions occupied by $U$.
[/proofplan]
[step:Encode each path by its sequence of horizontal and vertical steps]
Let
\begin{align*}
R=(1,0)\in \mathbb{Z}^2
\end{align*}
and
\begin{align*}
U=(0,1)\in \mathbb{Z}^2.
\end{align*}
Set $N:=a+b$ and let $S:=\{1,\dots,N\}$. Let $\mathcal{P}$ denote the finite set of all unit-step monotone lattice paths from $(0,0)$ to $(a,b)$.
Define the step-word map $\Phi:\mathcal{P}\to\{R,U\}^S$ as follows: for a path $p=(p_i)_{i=0}^N\in\mathcal{P}$ and $i\in S$, set
\begin{align*}
\Phi(p)(i)=p_i-p_{i-1}.
\end{align*}
This is well-defined because the definition of a unit-step monotone lattice path requires $p_i-p_{i-1}\in\{R,U\}$ for every $i\in S$.
Let $\mathcal{W}$ be the subset of $\{R,U\}^S$ consisting of all functions $w:S\to\{R,U\}$ for which exactly $a$ elements of $S$ are sent to $R$ and exactly $b$ elements of $S$ are sent to $U$.
[/step]
[step:Show the endpoint condition forces exactly $a$ horizontal steps and $b$ vertical steps]
Fix $p=(p_i)_{i=0}^N\in\mathcal{P}$. Define
\begin{align*}
A_p=\{i\in S:\Phi(p)(i)=R\}
\end{align*}
and
\begin{align*}
B_p=\{i\in S:\Phi(p)(i)=U\}.
\end{align*}
Let $r:=|A_p|$ and $u:=|B_p|$. Since every step is either $R$ or $U$, the sets $A_p$ and $B_p$ form a partition of $S$, so $r+u=N$.
By telescoping the increments in $\mathbb{Z}^2$, we get
\begin{align*}
p_N-p_0=\sum_{i=1}^N (p_i-p_{i-1}).
\end{align*}
The right-hand side is the sum of $r$ copies of $R=(1,0)$ and $u$ copies of $U=(0,1)$, hence it equals $(r,u)$. Since $p_N=(a,b)$ and $p_0=(0,0)$, the left-hand side equals $(a,b)$. Therefore $(r,u)=(a,b)$, so $r=a$ and $u=b$. Thus $\Phi(p)\in\mathcal{W}$.
[guided]
We want to extract from a path only the information that matters for counting: which of its $N=a+b$ steps are horizontal and which are vertical. For the fixed path $p=(p_i)_{i=0}^N$, define the set of horizontal step positions by
\begin{align*}
A_p=\{i\in S:\Phi(p)(i)=R\}
\end{align*}
and define the set of vertical step positions by
\begin{align*}
B_p=\{i\in S:\Phi(p)(i)=U\}.
\end{align*}
Let $r:=|A_p|$ and $u:=|B_p|$. Since the path condition says every increment is one of the two vectors $R$ and $U$, each index $i\in S$ belongs to exactly one of $A_p$ and $B_p$. Hence $A_p$ and $B_p$ partition $S$, and $r+u=N$.
Now we use the endpoint. The total displacement of the path is the sum of all its increments:
\begin{align*}
p_N-p_0=\sum_{i=1}^N (p_i-p_{i-1}).
\end{align*}
This identity is the finite telescoping sum in the abelian group $\mathbb{Z}^2$. Among the summands, exactly $r$ are equal to $R=(1,0)$ and exactly $u$ are equal to $U=(0,1)$. Therefore
\begin{align*}
\sum_{i=1}^N (p_i-p_{i-1})=r(1,0)+u(0,1)=(r,u).
\end{align*}
On the other hand, the path starts at $(0,0)$ and ends at $(a,b)$, so
\begin{align*}
p_N-p_0=(a,b)-(0,0)=(a,b).
\end{align*}
Comparing the two coordinate pairs gives $(r,u)=(a,b)$, hence $r=a$ and $u=b$. Thus the word associated to any admissible path has exactly $a$ horizontal symbols and exactly $b$ vertical symbols.
[/guided]
[/step]
[step:Construct the inverse path from a word with the prescribed numbers of steps]
Let $w\in\mathcal{W}$. Define a sequence $\Psi(w)=(q_i)_{i=0}^N$ in $\mathbb{Z}^2$ by setting $q_0:=(0,0)$ and, for each $i\in S$,
\begin{align*}
q_i=\sum_{j=1}^i w(j).
\end{align*}
Here the sum is taken in $\mathbb{Z}^2$, with $w(j)\in\{R,U\}\subset\mathbb{Z}^2$.
For every $i\in S$, we have
\begin{align*}
q_i-q_{i-1}=w(i)\in\{R,U\}.
\end{align*}
Since $w$ has exactly $a$ values equal to $R$ and exactly $b$ values equal to $U$, the final point is
\begin{align*}
q_N=aR+bU=(a,b).
\end{align*}
Thus $\Psi(w)\in\mathcal{P}$. The definitions give $\Phi(\Psi(w))=w$ for every $w\in\mathcal{W}$ and $\Psi(\Phi(p))=p$ for every $p\in\mathcal{P}$, because a path is recovered from its initial point and its successive increments. Hence $\Phi:\mathcal{P}\to\mathcal{W}$ is a bijection.
[/step]
[step:Count the admissible words by choosing the horizontal or vertical positions]
A word $w\in\mathcal{W}$ is uniquely determined by the subset
\begin{align*}
A_w=\{i\in S:w(i)=R\}\subset S.
\end{align*}
This subset has cardinality $a$. Conversely, every subset $A\subset S$ with $|A|=a$ determines exactly one word $w_A\in\mathcal{W}$ by setting $w_A(i)=R$ for $i\in A$ and $w_A(i)=U$ for $i\in S\setminus A$. Therefore
\begin{align*}
|\mathcal{W}|=\binom{N}{a}=\binom{a+b}{a}.
\end{align*}
The same words are also uniquely determined by their vertical-position subset
\begin{align*}
B_w=\{i\in S:w(i)=U\}\subset S.
\end{align*}
This subset has cardinality $b$, and every $b$-element subset of $S$ occurs in exactly one word. Hence
\begin{align*}
|\mathcal{W}|=\binom{N}{b}=\binom{a+b}{b}.
\end{align*}
Since $\mathcal{P}$ and $\mathcal{W}$ are in bijection, $|\mathcal{P}|=|\mathcal{W}|$, and therefore the number of unit-step monotone lattice paths from $(0,0)$ to $(a,b)$ is
\begin{align*}
\binom{a+b}{a}=\binom{a+b}{b}.
\end{align*}
This proves the stated counting formula.
[/step]