If you were still in school, I'd say the best first job could be an internship. You get a chance to test-drive the company, see how they treat you, see if you like the work, the people, and the organizational culture. If you don't like what you see, you simply move on after the internship ends. If you have a positive internship experience and the company likes your work, the job search becomes much easier for both you and them.
Since it sounds like you're done with school though, consider looking at what areas outside of IT you're passionate about. So many industries need information technology that you may be able to build your experience and skills working for an organization that does something you believe in. For me, it was writing software for the Washington Post (print, not online) as an intern. For you, it could be something far different.
Previous answers have advocated for small companies as a start. But given some of the things you want (good job growth and nice perks specifically), a small company may not be right for you. Larger companies are more able to offer perks, and job growth (in the form of promotions). Larger companies tend to have more financial resources as well, so they can send you out for training, offer tuition reimbursement, employee stock purchase plans, stock options, etc.
If you're familiar with Stephen Covey's 7 Habits of Highly Effective People, you know about habit 2: begin with the end in mind. When applied to your question about the "best" first job, I think it changes the focus to what you want your career to look like. If your ultimate goal is to have your own company, the best first job, second job, etc will be one where you gain the kind of experience that will help you succeed as a business owner. If enterprise architect is the goal you want to reach, jobs that provide the experience you'll need to fill that role are the ones to pursue.
Phil Wheeler's comments are spot-on when it comes to marketability and versatility. Too narrow a focus, particularly in a technology or in anything that can be "commoditized" means that what you do can be more easily outsourced to a low bidder. It's important to be your best at the technical aspects of a job, but don't let that be all you bring to the table.
Regardless of what you ultimately choose as your first IT job, I highly recommend a book by Chad Fowler titled The Passionate Programmer. It has tons of practical advice that I find very useful, even 13 years into my career.