There's no difference in meaning in Modern Japanese.
But, we usually use "hairu", not "iru", except for some fixed expressions such as
入り口(iriguchi)、日の入り(hinoiri)、入り江(irie) etc.
- 何者かが窓から建物に入る(はいる)のを目撃した。 (NOT: 何者かが窓から建物に入る(いる)のを目撃した)
In terms of ethymology, "iru" was a basic verb meaning to enter in Old Japanese and "hairu" was made from two verbs, "hau" (to crawl) + "iru" (to enter). Later, "hairu" has taken place of "iru" as a basic verb and "iru" survived in only some fixed expressions.
Note that "ireru" (to put something inside something else) and "iru" (to enter) share their meaning with each other, as do transitive and intransitive verbs. The same pattern can be found in "akeru" (to open stg) and "aku" (to open), "sodateru" (to raise sb) and "sodatsu" (to grow up) etc. In contrast to "iru", "ireru" is frequently used in Modern Japanese.
- 葉書をポストに入れた。