Все не так сложно, как кажется. Практически всегда можно проверить русским языком (только в этом случае, не вздумайте использовать для других правил) . Если в русском языке можно сказать нужную вам фразу в настоящем времени в значении будущего - ставьте going to. Например: I (will go/am going) to the theater tomorrow evening. Переводим. Можно сказать: я пойду в театр завтра вечером, но ведь можно (да и лучше) сказать: я иду в театр завтра вечером. Значит, выбираем am going. Или так. Oh, it's so cold! I (will/am going to) put on my sweater. О, как холодно! Я надену свитер. Не собираюсь надеть, а именно надену, потому что он только что понял, что холодно и также только что решил надеть свитер.