IconPackager is a great program and probably worth paying for if you want a very simple solution. Icon packages are made for IconPackager and are an entire set of icons that replace pretty much all of Windows' default icons. If you want the same theme of icons, then icon packages are the way to go so that you don't have to change every icon individually.
Resource Hacker is another solution that is a bit more advanced, but free. You can change many icons with it that you wouldn't be able to change normally. For instance, I used ResHacker to change my network and volume icons in the system tray.
One other option is a bit more tricky, but it works. You can search online and find people who have made a shell32.dll with their own icons. You download the DLL and then use a program called Replacer to replace your shell32.dll with the customized one. Windows will then use the new DLL as if it is the collection of default icons, but instead you will see your new ones.