I'm not sure about removing chat history for a single contact any trick or executable that can do the job for me.
Unfortunately, You cannot. It is not possible yet. By default Skype only deletes full chat history.
There is a 3rd party application, called SkypeX, which you can use to delete selected chat messages from your computer:
Actually, you can do the same using any Sqlite database editor (e.g. SQLite Database Browser; http:/sqlitebrowser.sourceforge.net), but this requires some knowledge of the SQL language commands.
In any case, note that the chat messages will only be deleted from your own computer and will still be readable on your contacts devices.
1) Make backup of your skype database "main.db" located in C:\Users\PROFILE NAME\AppData\Roaming\Skype\SKYPE LOGIN ID
2) Use SQLLite and open the database
3) Run a new query as follows :
DELETE * FROM "Messages"where dialog_partner = "skype name"
4) Please note skype name will the login ID of the user who's messages are to be deleted.
The above syntax does not work in SQLLite for me.
Also, how do you remove history from a group chat?
You may try with this command
DELETE FROM Messages where dialog_partner = “skype user name”
Replace skype user name by the exact Skype name of your conversation partner.
The same syntax applies for group chats. You can just replace dialog_partner by e.g. chatname, author or any other column name that has unique values for the records that you want to delete.