Therefore, based on the data below, the only records that i am wanting to display are:
2009100103----xxx@cox.net--------------17-OCT-09---------------------10-NOV-09-----------------31---------------------7
2009022501----xxx@cox.net--------------14-OCT-09---------------------03-NOV-09-----------------34--------------------14

Is there a reason that you have a DISTINCT in your query? It always makes me nervous to see that where it's not clearly necessary because it frequently means that a developer is missing a join condition and is using the DISTINCT to mask that fact.

On to the meat of your question, though, is there a potential for ties? If so, how do you want to handle that-- do you want two rows for that case, do you want to break the tie using some other column, do you want to pick an arbitrary row? If you want to pick an arbitrary row

Make your existing query into a sub-query.
Add the analytic RANK function to the SELECT clause, to number the rows in descending order, by date, with a different sequence of numebrs for each case_number.
In the new main query, pick only the rows where RANK assigned the number 1.