CORBA and EJB's seem to basically do the same thing to me. To me it seems that the purpose of both of these architectures is to fill the middle tier area. Is this true? If so or if not, can you explain why and what the specific funtion of each of these architectures has?
This is a common misconception. CORBA and EJB are entirely different beasts, solving different problems.
CORBA is a networking protocol for building distributed applications. It will provide you with a lookup service, and a nice abstraction for sending objects across a network connection, but that's it.
There is a CORBA specifiction for a application server called CCM (CORBA Component Model) that is a mirror image of the EJB spec (it, in fact, demands that any Java implementation of the CCM spec. have full EJB support) but this specification doesn't appear to be well-supported yet.