A large part of the "cargo cult" nature of this is the fact that there are a bewildering set of registry settings that can be set for COM objects, and it's not clear which, if any apply. So I'm attempting to lay out a series of articles that can help people determine what they need to set.
So we start at the beginning. You've decided that you are going to author a COM object. The reasons for it aren't important, you're writing a COM object.
Well, before you even get started, you need the minimal COM object registration.
Next, you need to determine if you need an APPID. If you do, you need to add an APPID registry key to your COM object's registration.
After thinking about the APPID, you need to determine if the interfaces supported by your object need to be marshaled. You have two choices when marshaling interfaces:
In general, marshaling by a proxy DLL will be somewhat faster (because it doesn't have to parse the typelib to determine the marshaling semantics), and will more accurately match the exact interface semantics.
On the other hand, marshaling by typelib allows you to easily implement automation and interoperate with VB6 and .Net languages.
There's no right answer that fits everyone, you need to make the choice that's right for your object. Once you've made that choice, you can either look at the registry changes needed to register a proxy DLL, or the registry changes needed to register a typelib.
And finally, you need to decide if you need a progid for your COM object. If you do, then you need to apply the registry changes for a PROGID.
Now this article doesn't even come close to covering all the myriad of options available for COM objects. But it covers all the cases I've hit over the past few years of (admittedly unsophisticated) COM use.
Btw, one of the things I noticed while writing this series is that the MSDN samples for ActiveX controls, especially the Hello sample do a great job of of showing all the COM registrations needed for ActiveX controls, including all the registry changes needed for each of the pieces above.