No geral, as convenções são "pense como se você estivesse apenas entregando páginas da web".
Para um PUT, eu retornaria a mesma visão que você obteria se fizesse um GET imediatamente depois; isso resultaria em 200 (bem, supondo que a renderização tenha êxito, é claro). Para um POST, eu faria um redirecionamento para o recurso criado (supondo que você esteja fazendo uma operação de criação; caso contrário, basta retornar os resultados); o código para uma criação bem-sucedida é 201, que é realmente o único código HTTP para um redirecionamento que não está no intervalo 300.
Eu nunca fiquei feliz com o que um DELETE deve retornar (meu código atualmente produz um HTTP 204 e um corpo vazio nesse caso).