Yea, sure. Here you go. I just wrote this up:

vb.net Code:
  1. Imports System.Drawing.Imaging
  2.  
  3. Public Class Form1
  4.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  5.         PictureBox1.Image = GetGreyscaledImage(New Bitmap("C:\Documents and Settings\Fromethius\My Documents\My Pictures\image.png"))
  6.     End Sub
  7.  
  8.     Public Shared Function GetGreyscaledImage(ByRef setImage As Image) As Image
  9.         Dim greyscaleBitmap As Bitmap = New Bitmap(setImage.Width, setImage.Height)
  10.         Dim greyscaleGraphics As Graphics = Graphics.FromImage(greyscaleBitmap)
  11.  
  12.         Dim greyscaleColorMatrix As New ColorMatrix(New Single()() { _
  13.             New Single() {0.5F, 0.5F, 0.5F, 0, 0}, _
  14.             New Single() {0.5F, 0.5F, 0.5F, 0, 0}, _
  15.             New Single() {0.5F, 0.5F, 0.5F, 0, 0}, _
  16.             New Single() {0, 0, 0, 1, 0, 0}, _
  17.             New Single() {0, 0, 0, 0, 1, 0}, _
  18.             New Single() {0, 0, 0, 0, 0, 1}})
  19.  
  20.         Dim greyscaleImageAttributes As New ImageAttributes()
  21.         greyscaleImageAttributes.SetColorMatrix(greyscaleColorMatrix)
  22.  
  23.         greyscaleGraphics.DrawImage(setImage, New Rectangle(0, 0, setImage.Width, setImage.Height), 0, 0, setImage.Width, setImage.Height, GraphicsUnit.Pixel, greyscaleImageAttributes)
  24.  
  25.         Return greyscaleBitmap
  26.     End Function
  27. End Class