You basically have two choices:
- Create forms which have .lfm resources with Application.CreateForm()
- Create resourceless forms with CreateNew()
Option 1 is the normal RAD route.
Lazarus creates all your forms for you (via Application.CreateForm() calls which it adds in the .lpr), and the Designer creates .lfm resources for all such automatically created forms (i.e. both for the default Form1, and for any further forms you generate via File->New Form).
You can tweak this option via the Project Options's Forms page which lets you specify which forms will be auto-created. If you have a lot of forms, you might not want or need all of them created at start-up, and so you can create some of them by manual calls to Application.Createform() only at the time you need them.
Lazarus generates and manages each .lfm file corresponding to its form unit file as you drop controls on forms and move them/delete them etc. This management all happens automatically in the background, and the .lfm is always kept in sync with the form unit file (unless you edit the .lfm outside the IDE and break the synchronisation).
Option 2 lets you create any form (with the possible exception of the main form) entirely in code, with no .lfm resource at all associated with such dynamically created forms. This is a far more verbose option, since you have to duplicate creation of all the controls you want on your form, and setting all their properties, parentage and positioning entirely in code (you are basically duplicating manually what Lazarus does for you automatically when it reads a form .lfm file as the template for the form's subcomponent creation and placement).
Although in theory you have a further option to create forms via calls to e.g. TForm2.Create(), it is not a route I would recommend since you do not seem to understand fully the complexities of form creation and form resource management.
Using Application.CreateForm() together with form resource management via .lfms is a much safer option for you, since then all your forms are managed by the Application, and you will not have to worry about when or how to free your forms. The Application instance will take care of it for you. And the IDE will ensure your .lfm files are always valid.