Rather than pay a garage to read your engine fault codes, most engine ECUs can be read for free!
Petrol engines
2.0/2.5/3.0 Paperclip test
2.6/3.2       Pedal trick
2.2             Code reader required..But try pedal trick, it *may* work if you are lucky
Diesel engines
2.5 TD        Paperclip test (some only, else code reader)
2.2 DTi       Code reader required
Those needing a code reader or more advanced diagnostics performed, see 
http://theboy.omegaowners.comPaperclip testPlease note: 2.0l will not work if engine running.
Open fusebox under steering wheel.  Straighten a paperclip, and insert as shown

Turn on ignition, and count the flashes of the EML.  Easiest way to describe is to watch this video...
http://images.omegaowners.com/images/guides/paperclip_test/paperclip.htmlNote: On a v6, if the engine isn't running, it is normal to get a 31.  On a v6, you can do test again with engine running.
Note: Systems using 2 digit codes (2.5/3.0 and earlier 2.0), the system flashes a 1-2 (12) 3 times to indicate start of sequence. Systems using 4 digit codes (later 2.0l), there is no start of sequence - it starts flashing out fault codes (if any) immediately.
Pedal TrickFoot on brake, gas pedal to the floor.
Turn on ignition to position II (do not fire the engine in position III)
When dash lights go out the yellow light car symbol with a spanner through it should flash.
4 sets of flashes/numbers pause and so on.
10 flashes is zero.
Constant flashing no codes.
Video is here (thanks to chrisgixer 

):
http://images.omegaowners.com/images/guides/paperclip_test/pedaltrick.html and shows 
10 3 10 10    =0300    random miss fire 
10 3 10 2     =0302     miss fire on cyl 2              
10 3 10 3     =0303     miss fire on cyl 3
you get the idea...