First off, lets establish what "running rich" really IS. You can't "know" you are running rich simply from soot out the back.
To really figure out if you are running rich you'd have to either dyno it, with a wideband A/F gauge telling you what you are running, or take it to a shop and have them look at your O2 sensors, and their sweep. Of course, you can do this, too, if you had the correct scanner, etc. Simply assuming that it IS, infact, rich because there is soot isn't really going to solve it, though. I suspect you aren't rich, but have your codes read even though there is no CEL present. There can be a pending code that hasn't triggered the light, yet.