The main difference is that Code First requires that you define everything in the code, while Model / Database first requires that you define everything in XML / Designer and only define minimal things in the code.
For example, if you want a two-way navigation property, then you need to write code for this in each of your objects. This is automatically generated for you when using other methods.
I like the Power Code first gives you, but most of the time I just can't bother to do all this.
For the most part, you get the same thing. It is just how you model it.
Another drawback is that (currently) in the code, when you make changes first, it discards the table and recreates it. Loss of all data (you can, of course, sow the database, but you cannot return data that you could enter manually). This will be allowed when the First First Migrations product is released.
source share