So, how can you accomplish this? Simple!
web.AllowUnsafeUpdates = true;
item["Editor"] = string.Format("{0};#{1}", spUser.ID, spUser.Name);
item["Author"] = string.Format("{0};#{1}", spUser.ID, spUser.Name);
item.UpdateOverwriteVersion();
web.AllowUnsafeUpdates = false;
The key is item.UpdateOverwriteVersion(). item.Update() and item.SystemUpdate() won't work here. Created By and Modified By are read-only fields and aren't meant to be messed with. However, I have been in situations where I had to modify them using code.
----
Horns up \m/