There are 나는 and 내가, the plain forms (between friends), and 저는 and 제가 which are the polite forms.
In both cases, there is a distinction between the topic markers (은, 는) and the subject markers (이, 가).
They both can mark the subject of the sentence, but the topic markers are more versatile in their rolls.
(The difference between 은 and 는, and between 이 and 가 is purely phonetic - the first one comes after a consonant, and the other after a vowel)
This is a very big topic and can't be explained in a paragraph, but here's a short introduction.
은/는 is used when you explain more details about an existing topic, like further unraveling new information.
이/가 on the other hand brings a new fact into the talk, either because it has been requested or for other reasons.
So, for example:
1. 어제 영철이 만났어. 걔는 새 직장 잡았더라. (I met 영철 yesterday. He's got a new job)
2. 오늘 집 근처에서 큰 사고가 났어. (There was a big accident near my house)
In (1), it starts talking about a friend 영철, and adds a related detail about him.
IN (2), the speaker is bringing up a new fact to the talk, sort of starting a new topic.
This distinction is not always sharp, so there are many cases where either can be used, or where including neither is better. For example, in (1), 걔 without any particle is as natural as 걔는, but 큰 사고는 났어 in (2) will sound strange.
은/는 also has another important connotation deriving from its main one - it can contrast things against one another.
For example, 졸업 후에 나는 대학교로 갔고, 친구는 취업했다 (After graduation, I went on to college and my friend took a job). It contrasts the 나 against 친구, which 이/가 cannot do as naturally.