Try something like this, I am assuming the form is posting back to itself in this case based on your logic.
Happy coding..
<cfparam name="form.cmdsubmit" default="">
<cfparam name="form.email_address" default="">
<!---// check to see if the form is being submitted //--->
<cfif form.cmdsubmit EQ "join newsletter")>
<!---// now check the to see if the field exists //--->
<cfif isDefined("form.email_address")>
<cfinsert datasource="USAmailing" tablename="USA" formfields="First_Name, Last_Name, Email_address, Company_Name">
<cfoutput>
Thank you #form.First_Name#
Your email address [#form.Email_Address#] Has been enter into our mailing list. You'll recieve the next mailing!
</cfoutput>
</cfif>
<cfelse>
<fORM ACTION="subscribe.CFM" METHOD="POST">
First Name: <input type="text" name="First_Name"><br>
Last Name: <input type="text" name="Last_Name"><br>
Company Name: <input type="text" name="Company_Name"><br>
Email Address: <input type="text" name="Email_Address">
<!---// add the NAME to the control so you can test for the submit value when posting the form //--->
<input name="cmdsubmit" type="submit" value="Join Newsletter">
</fORM>
</cfif>
~Programmers maxim~
Just when you think you have idiot-proofed something, along comes a better idiot.