El Niño is the warming of the ocean surface off the western coast of South America that occurs every 2 to 7 years. La Niña is simply its counterpart and occurs when these surface waters cool.
The direct cause of this oscillation is the weakening of the west to east trade winds near the equator. Normally, these trade winds push the warm surface water of the ocean towards the west. Cold sub-surface ocean water takes its place in the eastern Pacific in a process called upwelling. When the trade winds weaken or sometimes even reverse, the upwelling decreases or stops, allowing warmer ocean surface temperatures to appear.
Because this occurs over such a large expanse of the tropical Pacific, it influences global weather patterns through a process called teleconnection. Ridges of high pressure form over the warm waters and deflect upper level winds which then affect the atmosphere not only downstream of the ridge but also northward and southward.
Why is this so difficult to predict? Changes to the global circulation affect the trade winds, which then affects El Niño, which then again affects the global circulation. It is this feedback loop that is difficult to predict.