I've recently created a a thread about a similar problem on my car..
viewtopic.php?f=45&t=102980&p=1503981#p1503981
what I've learnt is misfire can be caused by three things.
They should be replaced in that order - cheapest to most expensive.
If you can identify which cylinder is problematic, the first thing to do is swap the spark plug and coil with another cylinder.
If the misfire moves to the new cylinder then its plug or coil that's faulty. £10 for a plug, £20 for a coil. Takes 10 mins to fit. Ideally you would replace all 6.
If the misfire is still on the same cylinder then the injector is faulty. A bit more expensive at £102 and it must be coded to the car.
I find the best way to read codes is probably the
"C110 Code Reader"
I've also got the android app torque and a bluetooth OBDII reader, but it doesn't seem capable of clearing 'pending' fault codes. Which is a problem with misfires as they always seem to be logged as pending.
Carly for BMW is a very good app, but you need to purchase both the app and USB cable.
part number for replacements;
Spark plugs - BOSCH ZGR6STE2
Coil pack - Eldor 12138657273 or Delphi GN10571 (newer N55 engine uses this)
Injector - 13538648937 £102 from BMW direct. These cant be reconditioned/cleaned/rebuilt, so be wary of anything cheaper.
Further note on Injectors.
They have a revision, or 'index' number. The picture of mine below are index 7.
All new injectors are index 12.
Index 10 or lower cant be mixed with 11 or higher in the same bank. Banks are 1,2,3 and 4,5,6.
I have a misfire in bank 1, so I need to replace injectors in cylinder 1, 2 and 3. Ideally you would replace all 6.
After fitting the injector must be coded to the car - The factory tests each injector and stamps it with its exact flow rate, the car must be programmed with this so that it doesn't over/under fuel.
You can do this yourself with ISTA, or INPA - loads of guides on how to set these up so wont go into it here.
Hope that helps!