What has worked well for me for over 15 years at various employers is Orcad Capture and the CIS component / part manager. I have all my components in an Access database (but you can use something else too as long as it can be accessed using ODBC but Access is just simple to use) where each component has a part number, order number, footprint, symbol, etc attached to it. What many CAD packages don't understand is that a component is so much more than a symbol. In other words: look for a CAD package which makes this distinction. I can get production ready BOM lists with one click of the mouse button and yet it takes little effort to add a component to a database.