Which is the best way to incorporate custom fonts?

Depends on the source. If they are locally hosted, then they should be in the CSS files using @font-face. If they come from a service like Adobe Type Kit or Google Fonts, then they have to be enqueued in the functions.php to go into the wp_head() function.

Edit: I forgot to mention that there are some plugins that can handle this for you. I personally use Type Kit and I have seen WordPress plugins where you simply enter in the kit ID Adobe gives you and it takes care of insertion.