could be any number of things, but if it starts fine when cold its possible it might be a problem with the lambda sensor (otherwise known as oxygen sensor)
It could be reading the exhaust gasses incorrectly and sending too much fuel into the engine.
it really needs a diagnostic check (or at least an exhaust emission test) to confirm this.
steve, August 2011