When trying to repair slow workstations, I've found that running sfc /scannow
helps quite a lot in a few of my environments running really old computers. I've also seen recommendations of reinstalling the last service pack after software installation to help keep the system stable. That makes sense as it would replace a lot of the dll files with the ones that would come with the service pack.
They both seem to do the same thing, but SFC some times will ask for a disk, where the Service Pack will not. What is the main difference between the two?
sfc appears to be similar to doing a "repair files" with the installation CD/DVD, where the nature of a Service Pack is that it is providing updated files.
In use, applying a Service Pack may not address damaged files that are not part of the Service Pack, where sfc repairs may result in the need to reapply a Service Pack to get the correct/up-to-date revisions.