Hi Jessica,
You can use the Wait step to accomplish this. Here is an article for your reference:
https://community.marketo.com/MarketoArticle?id=kA050000000L98K
What I am imagining is a trigger campaign based on when the Contract End Date field is filled in. Then, your first step in the flow would be a Wait step. Use the "Date Token" type and refer to the Contract End Date, {{lead.Contract End Date}}. Then, in the middle section, select "Minus". Lastly, enter "30" for the number of days. Lastly, select the checkbox for "Use anniversary of this date". Your next step would then be to send an Alert to whoever needs to be alerted.