다 means 'totally, at all'. 잊어먹다 is a compound verb that uses two verbs, 잊다 and 먹다. When a verb is compounded with another, the first verb conjugates. Whatever conjugates in Korean, it's meant to use 아/어 or something else(for irregular verbs). 잊 has 이(not 오/아), so it uses 어.
As you say, it's an informal way of saying it. 먹다 puts (slight?) emphasis on the first verb. About its meaning, I think it's like when you ate the last piece of cake - it's gone, you don't have it any longer. Similarly we say also 까먹었어요(a bit more informal). It uses 까다(peel), 먹다. It makes me imagine a kid unwraps the candy and eats it.
Other ones are 해먹다(do, different from 해(서)먹다), 말아먹다(spoil), 알아먹다(understand/get), 써먹다(use), et cetera, et cetera.
ㄹ지 is used to indicate you're not sure about something. 가능하다 to be possible
대화가 가능할지 (I'm not sure) if we can have a conversation
내일 비 올지 (I'm not sure) if it will rain tomorrow
Hope it helps!