I’m building a custom theme that I will reuse on more than one site and would like to be able to configure some things from the admin. For example setting the Twitter and Facebook pages links without hardcoding them in the template.
What’s the best way to do this? Should I put them in wp-config or should I have some sort of custom fields? These settings should be global to one site.
You should make a plugin, that way it is portable to any theme.
Generally speaking people need to stop filling up functions.php or theme files with code that is better suited for scalability and flexibility, aka a plugin.
Custom theme control panels are no longer the preferred way of offering options for WordPress themes. Instead you should use the built in theme customizer:
http://ottopress.com/2012/how-to-leverage-the-theme-customizer-in-your-own-themes/
Neither. Make a theme option panel.
There are plenty of open source ones on Github.