I'm essentially a web developer, but I want to know if it is a good practice to have one main form in desktop applications (winforms), I mean for log in form, main form, help form,... just by rendering/removing controls inside a single form? or it is better to have a new form for each one?
I would advise against it. It would be a nightmare to maintain all of that state.
It's generally better to have a form for each one, mainly for ease of maintenance but it can also help with the overall design of the application. E.g., if the Login is a dedicated form, you can reuse that Login dialog anywhere in the application if you wanted to, say if the user timed out after signing in.
I prefer to use seperate forms individually for each and it is completely based on how you design your application