The Swiss world No. 3 earned three service breaks and saved all seven of the break points he faced in the one hour, 26-minute match.
"In the first set, I was rock solid. I played great from start to finish," Federer said. "In the second set, it got tighter. I'm happy I was able to sneak it out."
Federer entered the tournament coming off back-to-back losses in the Australian Open and Davis Cup, but dropped only one set this week en route to extending his streak of years with at least one ATP World Tour title to 12.
Sunday's triumph gave him his 71st career title and second in Rotterdam. Federer had won the last time he appeared in the tournament, back in 2005.
The third-seeded del Potro was also playing in his first championship bout of the year. Del Potro fell to 9-5 all-time in finals and to 2-9 lifetime against Federer. However, he did beat Federer to become the 2009 U.S. Open champ.
"He played much better than me today," del Potro said. "I didn't take the break points when I had them. It's really difficult to beat Federer if you have the chances and don't take them. He was more confident and concentrated than me in the important moments and I think that was the key."