Yes, but with some caveats:
It's fully supported by Microsoft, and has a growing community--but being newer than its closest competetor, nHibernate, it still doesn't have quite as mature a community.
Along with having a less mature community, there will be times where a feature is available with EF4 but barely documented; or EF4 will throw exceptions which Google can't help you with.
It is full-featured when used as Microsoft intends, but in my experience it can be quite difficult to retrofit into an existing system. Ideally you'll use it in a greenfield scenario with a 100% Microsoft stack. It's certainly flexible enough to intermingle with other systems, but doing so increases the difficulty substantially.
However, to reiterate the main point, it is complete and stable enough for production use.
One key thing to point out, which seems obvious but is often overlooked until it causes pain, is that an ORM works to map from the relational paradigm to the OO-paradigm. If either of these tiers doesn't follow the rules of its respective paradigm then you'll feel extra hurt.
This can go both ways--if you're well versed in the relational/set-based paradigm of SQL and OOP then the ORM will let the two intermingle like butter. If your database looks like it wants to be OO, and your OO-code looks like it wants to be record-based, then YMMV.