Ah, OK.
The easiest way I can think of is to do the following:
1. Inherit the DiscussionTopics control
2. Create a new method to fetch the first discussion topic message (in discussion topics ParseTemplateTags method you have the Discussion Topic Id which you can use to fetch the discussion messages)
3. Override the ParseTemplateTags in the DiscussionTopics control
4. In the ParseTemplateTags you need to populate the following tags with new information. Over here you need to use the new method to fetch the first post which you've created and use is to populate the relevant tags. The tags which are related to the posts are below:
"<# LastPostText #>" This is the string which contains the "Last post by" caption. You could replace it with your own.
"<# LastPostToolTip #>" This contains the tooltip of the last post. You can either cut the content or include the whole post. This is the Message property of the DiscussionMessage entity.
"<# LastPostName #>" This is the message of the post. It's the same as the LastPostToolTip property. If you don't trim the content over here the whole post will be shown.
"<# LastPostUrl #>" This is the url of the post. You can use the GenerateMessageUrl method to generate the URL of the post.
"<# LastPostDate #>" This is the info when the last message was posted. You will also as well want to change that or even hide it. If you want to hide it you can use the following:
velocityContext.Put(
"LastPostVisible"
,
false
);
5. After you do that you can modify template of the discussion topics. Please understand that changing the template will also be reflected on the other discussion topic modes. If that doesn't suit you you could create a new template and use that template for new topics posts only for example. You can use the TopicFilterType property in the DiscussionTopics control to detect the currently active mode.
Depending on your requirements you could replace the new DiscussionTopics control with the old one or you can use it as a separate web part.
Regards