Encode a Turing machine $M$ and an input string $I$ into a single string $(M,I)$. Create a Turing machine $U$ that behaves as follows:
$U$ rejects any input that is not a valid encoding
When given valid input $(M,I)$, $U$ emulates the behavior of $M$ with input $I$
If $M$ eventually halts when given input $I$ then $U$ halts and accepts input $(M,I)$
If $M$ eventually halts when given input $I$ then $U$ will (eventually) accept input $(M,I)$. So $U$ recognizes the language
$L=\{(M,I) : M \text{ eventually halts when given input } I \}$
Note, however, that $U$ does not decide $L$ because it does not explicitly reject $(M,I)$ if $M$ never halts given input $I$ - in this case $U$ will also never halt when given input $(M,I)$.
The Halting Theorem tells us that $L$ is undecideable (over Turing machines) but we have just shown that $L$ is recognizeable.