Hello Bhag Ram,
You will need to do this with custom SQL statement.. I'm no pro but one example is that you can find the highest day of any month in your data set with a command such as
convert(date,(DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,[Database].[Date])+1,0)))) as [LastDateOfMonth] and then compare that field to your date field for each row in the Where clause to get only the rows where these match. I'd probably start off with a select statement that gets you the last 4 months of data and then do something like the example above.
Here are some resources I found helpful researching this.
I am assuming you already know how to create the custom sql from teh original connection, but if not, then you will have to do that first by using the Data menu item and selecting "Convert to Custom SQL"
I'm sure there are others here that can help you a lot more with SQL commands but all of this should be wrapped up in the custom sql rather than in Tableau to get the sort of results specified.
I am suggesting keep it simple principle.
Just create local excel sheet that has the dates you are interested in such as max of previous months and today.
Then create simple left join on these 2 tables and you will get your subset.
Thanks to both responses. Unfortunately I am not allowed to write SQL queries but use the data published directly to the Tableau server by the Tableau admin team. It looks like I cannot do this at the source w/o writing some kind of SQL query.