It's not a question of which is better. It's rather a question of which is necessary. NOT NULL are used for primary keys.
it depends if that field is a required field. you definitely do not want NULL to be in a required field.
According to what you want. In a recent site i made with Java and c#, i did not tick the not null in the db, but programmatically made it nexessary to include that field.
You should always try and advoid having null fields in a database (bad design practice) specifiying a field as NOT NULL means when you insert a new record you will always have a value to fill that column. It allows the dabase system to optermise your database.