What causes sticking and what can I do to reduce food sticking to my cast-iron skillet?
The first rule to keeping food from sticking to cast-iron is to keep it well primed - it sounds like you're doing that already. Beyond that, read these tips for cooking with stainless steel - they'll also apply to cast iron.

To summarize:


Food sticks when chemical bonds form between the food molecules and the metal.
Very hot oil helps to reduce sticking by instantly and continuously heating the food until it's surrounded by a layer of steam from its natural moisture content boiling. Let the oil get nice and hot before adding food.
Very hot oil also binds with the pan, so food can't. This is the principle behind priming the pan in the first place. 


I have some theories regarding particular problem foods:


Most of the molecular bonding occurs from proteins. Egg whites are mostly protein.
Frying potatoes creates surfactants in the oil, which cause oil and water to mix. This reduces the effect of the protective layer of steam. (Some people save and re-use cooking oil -- though it can impart a delicious flavor to later meals, it will also build up surfactants if the same oil is used too many times.)
Also, keep in mind that acidic foods like tomatoes will break down the protective patina and may make foods stick more readily.