The Service Engine Soon Light usually means there is a fault with an electronic part of the powertrain, or an electronically controlled/monitored system. You need a scanner/OBD II reader to find out the fault code set in the powertrain module to find out what the SES light is. These tools range from $50 for super basic code readers all the way to $5,000 for advanced professional diagnostic equipment. Some auto parts stores will check it for free. Once you get the code (and if you're not sure how to interpret it), run a search for the code number in this forum or post another thread.
Obviously the BEST source is the dealer. However, you can also try these links out: http://www.bmwparts.com http://www.autopartswarehouse.com http://www.realoem.com
You can't order parts from Realoem.com, but it's a good reference to look at. You can also Google "BMW parts."
An extended warranty, in MY opinion, is ALWAYS worth it. You just never know...