UIImageView *welcomeText = [[UIImageView alloc] init];
welcomeText = [[UIImageView alloc] initWithFrame:CGRectZero];
После того, как во второй строке ранее выделенный текст welcomeText потерян, и вы теряете эту память. После 1-й строки открывается представление изображения, и welcomeText указывает на это. Во 2-й строке выделено другое изображение, и теперь welcomeText указывает на это новое изображение. Таким образом, у вас нет указателя на 1-й вид выделенного изображения и, как следствие, утечка.
Здесь вам на самом деле не нужна 1-я строка.
UIImageView *welcomeText = [[UIImageView alloc] initWithFrame:CGRectZero];