Correct, you can create your own custom filters like:
angular.module('', [])
.filter('someFilter', function() {
return function(input,param1) {
...
In your html all you need to do is to using as any other filter like {{somevalue | someFilter}}
Going back to your date problem, the second thing you may know is that you can invoke the filters directly from code by injecting $filter service; this will let you can grab any values from the filter:
var filteredDate = $filter('date')(new Date(input), 'dd MMMM');
Putting all together, I think this would be my recommended way to implement the custom filter
angular.module('', [])
.filter('someFilter', function($filter) {
return function(input) {
var filteredYearMonth = $filter('date')(new Date(input), 'MMMM yyyy');
var filteredDay = (new Date(input)).getDay();
var arr = ['st', 'nd', 'rd']
var myDate arr[filteredDay] || "th" + filteredYearMonth;
return myDate
...