Basically this means that the the car's computer has detected that not all of the engine's cylinders are firing properly.
A P0300 diagnostic code indicates a random or multiple misfire. If the last digit is a number other than zero, it corresponds to the cylinder number that is misfiring. A P0302 code, for example, would tell you cylinder number two is misfiring. Unfortunately, a P0300 doesn't tell you specifically which cylinder(s) is/are mis-firing, nor why.
Symptoms may include:
the engine may be harder to start
the engine may stumble / stumble, and/or hesitate
other symptoms may also be present
A code P0300 may mean that one or more of the following has happened:
Faulty spark plugs or wires
Faulty coil (pack)
Faulty oxygen sensor(s)
Faulty fuel injector(s)
Burned exhaust valve
Faulty catalytic converter(s)
Stuck/blocked EGR valve / passages
Faulty camshaft position sensor
If there are no symptoms, the simplest thing to do is to reset the code and see if it comes back.
If there are symptoms such as the engine is stumbling or hesitating, check all wiring and connectors that lead to the cylinders (i.e. spark plugs). Depending on how long the ignition components have been in the car, it may be a good idea to replace them as part of your regular maintenance schedule. I would suggest spark plugs, spark plug wires, distributor cap, and rotor (if applicable). Otherwise, check the coils (a.k.a. coil packs). In some cases, the catalytic converter has gone bad. If you smell rotten eggs in the exhaust, your cat converter needs to be replaced. I've also heard in other cases the problems were faulty fuel injectors.
Random misfires that jump around from one cylinder to another (read: P030x codes) also will set a P0300 code. The underlying cause is often a lean fuel condition, which may be due to a vacuum leak in the intake manifold or unmetered air getting past the airflow sensor, or an EGR valve that is stuck open.